本帖最后由 panxiaoyi 于 2023-4-3 23:54 编辑
全部代码- #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 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() //用户中断函数
- {
- }
- //上面的是创建 FT61F14 芯片的工程时,软件自动生成的代码
- //下面的是我遇到问题,一路排查,最后发现的问题点,以最简单的代码方式展现出来
- unsigned char func(unsigned char SW, unsigned char T1, unsigned char T2)
- {
- return (SW+T1+T2);
- }
- main()
- {
- while(1)
- {
- unsigned char aaa=0;
- unsigned char ccc=3;;
- unsigned char kkk;
- aaa++;
- kkk=func((aaa&5), 2, ccc); //正确
- kkk=func((aaa&5), 1, ccc); //芯片 FT61F14 报错, FT61F13 正确
- kkk=func((aaa&5), 0, ccc); //芯片 FT61F14 报错, FT61F13 正确
- kkk=func((aaa^5), 0, ccc); //正确
- kkk=func((aaa+5), 0, ccc); //正确
- PORTA=kkk;
- }
- }
|