[国产单片机] 辉芒微F61FT145资源兼容替代STM8S003,价格小于1

[复制链接]
 楼主| llllll008 发表于 2022-7-7 14:11 | 显示全部楼层 |阅读模式
引脚位完全替代STM8003,内置eeprom 空间更大的还有FT61F0A5带串口,64F0A5带串口和运算放大器,价格也很美丽
FMD辉芒微小卖家 发表于 2022-9-24 11:24 | 显示全部楼层
哟哟哟
ghost_z 发表于 2022-9-27 20:53 | 显示全部楼层
中断里面要加20个NOP,是什么回事?
stb988 发表于 2022-9-28 08:44 | 显示全部楼层
ghost_z 发表于 2022-9-27 20:53
中断里面要加20个NOP,是什么回事?

看来他们对编译并没有优化啊
panxiaoyi 发表于 2022-9-28 20:10 | 显示全部楼层
全部代码如图,就几十行代码

发现:

如果书写代码 aaa=1 ,则:
汇编代码 第一步清零 aaa,第二步 aaa+1

如果书写代码 aaa=2,则:
汇编代码 就是一条赋值语句,没有清零步骤

分析:
当 aaa=1 时,并且汇编运行到 清零aaa指令后,这时候刚刚好中断,这时,在中断里面读取aaa的值就是=0,就是错误

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
panxiaoyi 发表于 2022-9-28 20:15 | 显示全部楼层
ghost_z 发表于 2022-9-27 20:53
中断里面要加20个NOP,是什么回事?

这20行 NOP 必须要加,少一行,或者同一行书写20个NOP都不行,我就吃过这个亏,而且是批量
ghost_z 发表于 2022-9-28 20:24 | 显示全部楼层
是什么原因这样弄?IC BUG?
panxiaoyi 发表于 2022-9-28 20:31 | 显示全部楼层

  1. //Device: FT61F14X

  2. #include "SYSCFG.h"

  3. //===========================================================

  4. volatile char W_TMP    [url=home.php?mod=space&uid=72445]@[/url] 0x70;     //系统占用不可以删除和修改
  5. volatile char BSR_TMP  @ 0x71;     //系统占用不可以删除和修改
  6. void user_isr(void);               //用户中断程序不可删除

  7. unsigned char aaa;

  8. //===========================================================

  9. void interrupt ISR(void)
  10. {
  11.         #asm;    //系统设置不可以删除和修改
  12.         NOP;     //系统设置不可以删除和修改
  13.         NOP;     //系统设置不可以删除和修改
  14.         NOP;     //系统设置不可以删除和修改
  15.         NOP;     //系统设置不可以删除和修改
  16.         NOP;     //系统设置不可以删除和修改
  17.         NOP;     //系统设置不可以删除和修改
  18.         NOP;     //系统设置不可以删除和修改
  19.         NOP;     //系统设置不可以删除和修改
  20.         NOP;     //系统设置不可以删除和修改
  21.         NOP;     //系统设置不可以删除和修改
  22.         NOP;     //系统设置不可以删除和修改
  23.         NOP;     //系统设置不可以删除和修改
  24.         NOP;     //系统设置不可以删除和修改
  25.         NOP;     //系统设置不可以删除和修改
  26.         NOP;     //系统设置不可以删除和修改
  27.         NOP;     //系统设置不可以删除和修改
  28.         NOP;     //系统设置不可以删除和修改
  29.         NOP;     //系统设置不可以删除和修改
  30.         NOP;     //系统设置不可以删除和修改
  31.         NOP;     //系统设置不可以删除和修改
  32.         NOP;     //系统设置不可以删除和修改
  33.         #endasm; //系统设置不可以删除和修改
  34.         user_isr();
  35. }

  36. void user_isr(void)
  37. {
  38.         if(T4UIF)
  39.         {
  40.                 if(aaa==0)
  41.         LATA=255;           //测试,正常时此语句不应该运行
  42.                 T4UIF=0;            //清零
  43.         }
  44. }

  45. //===========================================================

  46. main()
  47. {
  48.         OSCCON = 0b01110001;        //16MHZ 1:1
  49.         WDTCON = 0b11101001;    //看门狗复位默认值并使能看门狗
  50.    
  51.     aaa=1;
  52.     LATA=0;

  53.     TIM4EN = 1;             //TIME4时钟使能
  54.         T4CEN  = 1;             //TIME4使能
  55.    
  56.         T4UIF  = 0;             //清零标记
  57.         T4UIE  = 1;             //允许中断

  58.         GIE=1;                  //全局中断使能
  59.         PEIE=1;                 //外设中断使能

  60.         while(1)
  61.         {
  62.                 WDTCON=0b11101001;  //看门狗复位默认值并使能看门狗
  63.         NOP();
  64.         NOP();              //增加/减少空操作语句,可以改变出现错误的命中率
  65.         aaa=1;              //aaa=1 时会出现错误,aaa=2~255就不会出现错误,因为它们产生的汇编指令不同
  66.         NOP();
  67.         }
  68. }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
panxiaoyi 发表于 2022-9-28 20:32 | 显示全部楼层
估计是编译器,当然,也可能是我的问题,还请大家帮忙看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

103

帖子

3

粉丝
快速回复 返回顶部 返回列表