欢迎来到天天文库
浏览记录
ID:10731259
大小:27.50 KB
页数:2页
时间:2018-07-07
《学习笔记_iccavr 语法_20050510》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学习笔记一.C语言1.WDR();//清看门狗指令2.NOP();//空指令二.2005-5-16ICCAVR编译注意事项1.对于#definecTCNT0(255-cTime0*1000/(cPrescale/Fclk))1.1结果是编译成运算没有直接转换成常量数值,不能采用,增加非常多的程序1.2#definecTCNT0178//(255-cTime0*1000/(cPrescale/Fclk))这样没有问题三.2005-5-13嵌入式汇编语言语法1.取低字节地址:asm("ldir30,<%vTaskContext");2.取高字节地
2、址:asm("ldir31,>%vTaskContext");3.使用C语言中的变量:用%,见上面例子4.asm(".areamemory(abs)"".org0x1000""_LCD_control_register::.blkw1""_LCD_data_register::.blkw1");5.asm("A:DECR16""BRNEA");四.2005-5-13C函数参数传递顺序及寄存器位置1.传递参数和返回值所使用的寄存器2.第一个参数若是整型则通过R16/R17传递第二个参数则通过R18/R19传递五.2005-5-131.在汇编函数
3、中必须保护和恢复下列寄存器R28/R29或Y这是结构指针R10/R11/R12/R13/R14/R15/R20/R21/R22/R23这些寄存器是调用保护寄存器,这些寄存器的内容在被汇编语言函数调用后必须保持不变2.R0/R1/R2/R3/R4/R5/R6/R7/R8/R9/R24/R25/R26/R27/R30/R31可以在汇编语言函数中使用而不被保护和恢复这些寄存器是调用挥发寄存器,这些寄存器的内容在被函数调用后可以改变六.2005-5-10MEGA芯片中有1.1V参考电源1.可直接用于A/D转换用七.2005-5-101.用:#prag
4、ma data:code 定义在flsh用:3pragma data:data 定义在sram2.要在flash中定义数组可以使用const语句,例如const char str[]={}八.constinttable[]={1,2,3};//"table"是表格式样分配进程序存贮器constchar*ptr1;//"ptr1"是一个项目在数据存贮器而指向数据的指针在程序存贮器char*constptr2;//"ptr2"是一个项目在程序存贮器而指向数据的指针在数据存贮器constchar*constptr3;//"ptr3"是项目在程序存
5、贮器而指向数据的指针也在程序存贮器九.EEPROM在运行时可以使用库函数访问1.#include2.EEPROM_READ(intlocation,object)2.1EEPROM_Read(0x1,i);//读2个字节给i3.EEPROM_WRITE(intlocation,object)3.1EEPROM_WRITE(0x1,i);//写两个字节至0x1二..ASC字符串1.eESC2.b退格3.f换页4.换行5.r回车6.tTAB
此文档下载收益归作者所有