11
103
291
中级技术员
使用特权
3
23
69
初级技术员
2
151
607
高级技术员
40
326
982
ghost_z 发表于 2022-9-27 20:53 中断里面要加20个NOP,是什么回事?
49
393
1255
助理工程师
微信图片_20220928200612.jpg (403.92 KB )
下载附件
2022-9-28 20:06 上传
//Device: FT61F14X #include "SYSCFG.h" //=========================================================== volatile char W_TMP [url=home.php?mod=space&uid=72445]@[/url] 0x70; //系统占用不可以删除和修改 volatile char BSR_TMP @ 0x71; //系统占用不可以删除和修改 void user_isr(void); //用户中断程序不可删除 unsigned char aaa; //=========================================================== void interrupt ISR(void) { #asm; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 NOP; //系统设置不可以删除和修改 #endasm; //系统设置不可以删除和修改 user_isr(); } void user_isr(void) { if(T4UIF) { if(aaa==0) LATA=255; //测试,正常时此语句不应该运行 T4UIF=0; //清零 } } //=========================================================== main() { OSCCON = 0b01110001; //16MHZ 1:1 WDTCON = 0b11101001; //看门狗复位默认值并使能看门狗 aaa=1; LATA=0; TIM4EN = 1; //TIME4时钟使能 T4CEN = 1; //TIME4使能 T4UIF = 0; //清零标记 T4UIE = 1; //允许中断 GIE=1; //全局中断使能 PEIE=1; //外设中断使能 while(1) { WDTCON=0b11101001; //看门狗复位默认值并使能看门狗 NOP(); NOP(); //增加/减少空操作语句,可以改变出现错误的命中率 aaa=1; //aaa=1 时会出现错误,aaa=2~255就不会出现错误,因为它们产生的汇编指令不同 NOP(); } }
FT61F14X_bug.zip
2022-9-28 20:30 上传
点击文件名下载附件
3.97 MB
发表回复 本版积分规则 回帖后跳转到最后一页
人才类勋章
时间类勋章
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号