avr单片机绘图函数库(syany

avr单片机绘图函数库(syany

ID:30012029

大小:49.51 KB

页数:5页

时间:2018-12-26

avr单片机绘图函数库(syany_第1页
avr单片机绘图函数库(syany_第2页
avr单片机绘图函数库(syany_第3页
avr单片机绘图函数库(syany_第4页
avr单片机绘图函数库(syany_第5页
资源描述:

《avr单片机绘图函数库(syany》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Syany绘图库使用方法方法1:作为系统库使用要使用绘图库要按照上述说明正确包含本书提供的库文件.将libgraph.h复制到Winavr目录的avrinclude目录libgraph.a复制到Winavr目录的avrlib目录在文件头部包含graph.h#include使用AVRX系统的makefile的修改修改两处在makefile增加一句加亮显示为库文件所在的目录#Definedirectories,ifneeded.DIRAVR=f:/Soft/Mcu/winavr设置WINAVR的安装目录

2、DIRAVRBIN=$(DIRAVR)/binDIRAVRUTILS=$(DIRAVR)/utils/binDIRINC=.DIRLIB=$(DIRAVR)/avr/libGRAPHLIB=$(DIRAVR)/avr/lib/graph.a增加一句加亮显示为库文件所在的目录#Defineprogramsandcommands.SHELL=sh加亮为增加的部分%.elf:$(OBJ)@echo@echo$(MSG_LINKING)$@$(CC)$(ALL_CFLAGS)$(OBJ)$(GCCLIB)$(GRAPHLIB)--ou

3、tput$@$(LDFLAGS)修改完就可以和AVRX编译在一起生成可执行文件了。正常C程序编译Makefile的修改方法2:把将graph.h和graph.a复制到您所开发文件所在的目录,修改的唯一不同之处是GRAPHLIB=graph.a此处就不需要给出文件的位置了。其余的修改和上面相同。修改完就可以和AVRX编译在一起生成可执行文件了。不使用AVRX系统的使用方法把将graph.h和graph.a复制到您所开发文件所在的目录在主文件头部包含#include“graph.h”用Mfile生成您系统所需的Makefile,然

4、后增加下面所示的内容。GRAPHLIB=graph.a增加的内容#----------------LinkerOptions----------------#-Wl,...:tellGCCtopassthistolinker.#-Map:createmapfile#--cref:addcrossreferencetomapfileLDFLAGS=-Wl,-Map=$(TARGET).map,--crefLDFLAGS+=$(EXTMEMOPTS)LDFLAGS+=$(PRINTF_LIB)$(SCANF_LIB)$(GRAPH

5、LIB)$(MATH_LIB)编译即可。绘图库说明Syany绘图库是作者在大学时的业余之作,用于AVRAtmega64以上的单片机的用于对单色液晶屏使用的绘图库,提供了常用的绘图函数,绘图库具有代码量小,执行速度快。绘图库使用C语言开发,绘图函数不涉及到任何液晶屏硬件的信息,本绘图库适用于任何单色图形点阵的液晶屏的绘图操作。绘图库使用图形缓冲技术,绘图操作全部在内存中执行,然后用户需要编写相应的液晶屏驱动程序,将绘图缓冲的内容写入到液晶屏,即可完成对液晶屏的绘图的操作。这样做的好处时绘图库不受液晶屏型号和指令的限制,只要液晶屏

6、能和AVR单片机接口,就可以使用本绘图库进行复杂的图形显示。这样设计唯一的缺点是占用了宝贵的内存空间。但是现在的AVR单片机内存都比较大,完全可以胜任较大内存的一些需求。有了绘图库的支持,任何设计计中使用单色液晶屏的绘图操作的实现提供了强大的后台支持,也大大的缩短了复杂界面的开发时间。绘图库缓冲大小的计算,本绘图库针对单色图形点阵液晶屏而设计,因此液晶屏上的每一点只有两种状态:点亮和熄灭。用二进制亮用1表示,灭用0表示,这样液晶屏上的一个点(像素)对应图形缓冲中的一个位。每8个位组成一个字节。液晶屏显示区域的总像素为液晶屏横向

7、的点数与液晶屏纵向的点数的乘积,需要缓冲的总字节数为总像素除以8。缓冲区的定义为一个二维数组,定义为SBuffer[液晶屏的横向点数÷8][液晶屏纵向的行数]。绘图库的原点(0,0)坐标为SBuffer[0字节的最高位][0],按顺序写入液晶屏后0相当于液晶屏的左上角。缓冲的示意图如下N=液晶屏横向点数÷8;M=液晶屏纵向的行数.12345670字节0………字节N…………..M列缓冲区大小的定义如下#defineBufferXSize128L#defineBufferYSize64LBufferXSize为液晶屏横向点数定义,

8、BufferYSize为液晶屏纵向的行数定义.如果需要修改缓冲取的大小,只需要修改这两个定义即可。缓冲二维数组的定义会根据此定义自动计算得出。缓冲区的宽度必须是8的整数倍,不足8点的移8计算.屏幕的长度没有限制,根据实际的LCD大小定义,本库测试环境的大小为128*64,在此

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。