[技术问答]

用N76E003写switch case语句发现一个问题,求各位前辈解答!

[复制链接]
1097|6
手机看帖
扫描二维码
随时随地手机跟帖
小S咯|  楼主 | 2018-1-10 15:36 | 显示全部楼层 |阅读模式
先附上一段代码
#define N 2
void fun(void)
{
  static u8 sta=0;
  switch(sta)
  {
    case 0:
      list1_on(1);list2_on(1);list3_on(3);
      delay(N);
    sta++;
    break;
    case 1:
      list1_on(2);list2_on(2);list3_on(4);
      delay(N);
    sta++;
    break;
    case 2:
      list1_on(1);list2_on(3);list3_on(1);
      delay(N);
    sta++;
    break;
    case 3:
      list1_on(3);list2_on(4);list3_on(2);
      delay(N);
    sta++;
    break;
    case 4:
      list1_on(2);list2_on(1);list3_on(3);
      delay(N);
    sta++;
    break;
    case 5:
      list1_on(3);list2_on(2);list3_on(4);
      delay(N);
    sta++;
    break;
    case 6:
      list1_on(2);list2_on(3);list3_on(2);
      delay(N);
    sta++;
    break;
    case 7:
      list1_on(3);list2_on(1);list3_on(3);
      delay(N);
    sta++;
    break;
    case 8:
      list1_on(4);list2_on(2);list3_on(1);
      delay(N);
    sta++;
    break;
    case 9:
      list1_on(5);list2_on(3);list3_on(2);
      delay(N);
    sta++;
    break;
    case 10:
      list1_on(1);list2_on(4);list3_on(1);
      delay(N);
    sta++;
    break;
    case 11:
      list1_on(2);list2_on(2);list3_on(2);
      delay(N);
    sta++;
    break;
    case 12:
      list1_on(3);list2_on(1);list3_on(3);
      delay(N);
    sta++;
    break;
    case 13:
      list1_on(2);list2_on(2);list3_on(4);
      delay(N);
    sta++;
    break;
    case 14:
      list1_on(1);list2_on(3);list3_on(5);
      delay(N);
    sta++;
    break;
    case 15:
      list1_on(2);list2_on(4);list3_on(6);
      delay(N);
    sta++;
    break;
    case 16:
      list1_on(1);list2_on(1);list3_on(1);
      delay(N);
    sta++;
    break;
    case 17:
      list1_on(3);list2_on(2);list3_on(2);
      delay(N);
    sta++;
    break;
    case 18:
      list1_on(2);list2_on(1);list3_on(3);
      delay(N);
    sta++;
    break;
    case 19:
      list1_on(4);list2_on(2);list3_on(4);
      delay(N);
    sta++;
    break;
    case 20:
      list1_on(2);list2_on(3);list3_on(2);
      delay(N);
    sta++;
    break;
    case 21:
      list1_on(3);list2_on(1);list3_on(3);
      delay(N);
    sta++;
    break;
    case 22:
      list1_on(4);list2_on(2);list3_on(4);
      delay(N);
    sta++;
    break;
    case 23:
      list1_on(5);list2_on(3);list3_on(1);
      delay(N);
    sta++;
    break;
    case 24:
      list1_on(6);list2_on(4);list3_on(2);
      delay(N);
    sta++;
    break;
    case 25:
      list1_on(1);list2_on(5);list3_on(3);
      delay(N);
    sta++;
    break;
    case 26:
      list1_on(2);list2_on(6);list3_on(4);
      delay(N);
    sta++;
    break;
    case 27:
      list1_on(3);list2_on(2);list3_on(1);
      delay(N);
    sta++;
    break;
    case 28:
      list1_on(1);list2_on(3);list3_on(2);
      delay(N);
    sta++;
    break;
    case 29:
      list1_on(2);list2_on(1);list3_on(3);
      delay(N);
    sta++;
    break;
    case 30:
      list1_on(3);list2_on(2);list3_on(4);
      delay(N);
    sta++;
    break;
    default:
      sta = 0;
    break;
   
  }
}
上面的代码是sta从0到30反复执行,delay是软件延时函数。
现在调试的时候发现一个问题,如图 1.png 2.png
为什么case中的delay函数和sta++;语句到不了???是什么原因呢??
我用了N76E003 APROM program DATAFLASH as EEPROM,跟这个FLASH当EEPROM有关系吗?
小S咯|  楼主 | 2018-1-10 15:39 | 显示全部楼层
百思不得其解啊。。。。网上找了几天了。
因为要用到掉电**,所以刚开始的时候用的官方EEPROM教程,出现问题了,后来在论坛找了一个前辈写的EEPROM代码,还是有问题,不过不知道是不是这个问题。

使用特权

评论回复
座机呀| | 2018-1-10 21:38 | 显示全部楼层
我遇到过,跟n76e003没关系,是代码优化级别调的太高了,你把代码优化级别调至0(默认是8)就可以了

使用特权

评论回复
小S咯|  楼主 | 2018-1-11 11:42 | 显示全部楼层
座机呀 发表于 2018-1-10 21:38
我遇到过,跟n76e003没关系,是代码优化级别调的太高了,你把代码优化级别调至0(默认是8)就可以了 ...

确实是
这样是不是不能调试了?

使用特权

评论回复
gejigeji521| | 2018-1-11 21:43 | 显示全部楼层
优化后就不对应了,调试无效。

使用特权

评论回复
mintspring| | 2018-1-12 15:59 | 显示全部楼层
也可以通过大括号把一组程序放一起

使用特权

评论回复
玛尼玛尼哄| | 2018-1-13 19:28 | 显示全部楼层
跟代码本身没有关系。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

178

帖子

4

粉丝