合泰单片机总结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
合泰单片机总结

合泰单片机总结 --测试环境C编译器V2 Debug .数组,支持一维/二维数组(大小小于1 bank); 使用const关键字,变量将存储于程序存储区,如,const uint8_t tab[] = “1,2,3”; 中断服务函数: #pragma vector ISR_tmr0 @ 0x0c //定义中断入口地址 void ISR_tmr0(void) { tick++ ;} 中断函数中调用普通函数 (1)方法1 #pragma vector ISR_tmr0 @ 0x0c #pragma nolocal fun fun() { } void ISR_tmr0(void) { fun() ; } (2)方法2 #pragma vector ISR_tmr0 @ 0x0c fun() { } void ISR_tmr0(void) { #asm call _fun; #endasm } 宏定义 #define _pa0 _12_0 //bit 0 of RAM address 0x12 位变量定义 对于有多个bank的MCU,位变量只能定义在bank0,使用如下方式 #pragma rambank0 bit flag ; #pragma norambank 指针 不支持指向“字符串数组” char *rainbow[] = { red, orange, yellow };// not supported 只支持全局的静态函数指针,且所指函数不能带有参数 fun() { return 1; } int (*const p)() =fun; // global and initialization required void main() { int a; a=(*p)(); } 不支持取得const常量的地址 const int ldc = 0; void main(){ int *a; a = ldc; // cannot pass } 内嵌汇编 #asm [label:] opcode [operands] ... #endasm Eg: char a; int b; void fun(char p1,int p2) { a = p1; #asm // b = p2; MOV A,fun1 MOV _b,A MOV A,fun1[1] mov _b[1],A #endasm } void main() { int d1; char d2; unsigned char q, r; r = 0; q = d1 / d2; // get quotient #asm // r = q; MOV A, CR3 ; CR3→q MOV CR4,A ; CR4→r #endasm #asm // fun(d2,d1) MOV A,CR2 MOV fun0,A ; p1 = d2 MOV A,CR1 MOV fun1,A MOV A,CR1[1] MOV fun1[1],A ; p2 = d1 CALL _fun #endasm } 预编译指令 编译器特殊选项 内嵌函数 注意事项

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档