欢迎来到天天文库
浏览记录
ID:51255740
大小:1.16 MB
页数:8页
时间:2020-03-20
《合泰单片机总结.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、合泰单片机总结--测试环境C编译器V21.Debug2.1..数组,支持一维/二维数组(大小小于1bank);2.使用const关键字,变量将存储于程序存储区,如,constuint8_ttab[]=“1,2,3”;3.中断服务函数:#pragmavectorISR_tmr0@0x0c//定义中断入口地址voidISR_tmr0(void){tick++;}4.中断函数中调用普通函数(1)方法1#pragmavectorISR_tmr0@0x0c#pragmanolocalfunfun(){}voidISR_tmr0(void){fun();}(2)方法2#pragmavectorISR_
2、tmr0@0x0cfun(){}voidISR_tmr0(void){#asmcall_fun;#endasm}1.宏定义#define_pa0_12_0//bit0ofRAMaddress0x122.位变量定义对于有多个bank的MCU,位变量只能定义在bank0,使用如下方式#pragmarambank0bitflag;#pragmanorambank3.指针(1)不支持指向“字符串数组”char*rainbow[]={"red","orange","yellow"};//notsupported(2)只支持全局的静态函数指针,且所指函数不能带有参数fun(){return1;}int
3、(*constp)()=fun;//globalandinitializationrequiredvoidmain(){inta;a=(*p)();}(3)不支持取得const常量的地址constintldc=0;voidmain(){int*a;a=&ldc;//cannotpass}4.内嵌汇编#asm[label:]opcode[operands]...#endasmEg:chara;intb;voidfun(charp1,intp2){a=p1;#asm//b=p2;MOVA,fun1MOV_b,AMOVA,fun1[1]mov_b[1],A#endasm}voidmain(){i
4、ntd1;chard2;unsignedcharq,r;r=0;q=d1/d2;//getquotient#asm//r=q;MOVA,CR3;CR3→qMOVCR4,A;CR4→r#endasm#asm//fun(d2,d1)MOVA,CR2MOVfun0,A;p1=d2MOVA,CR1MOVfun1,AMOVA,CR1[1]MOVfun1[1],A;p2=d1CALL_fun#endasm}1.预编译指令2.编译器特殊选项1.内嵌函数2.注意事项
此文档下载收益归作者所有