IAR优化问题

[复制链接]
2480|5
 楼主| pkat 发表于 2012-1-30 10:29 | 显示全部楼层 |阅读模式
函数如下:
LCD_Display_unum8bit(17, Line5, timerun->Sec%100/10);//刷新秒显示
LCD_Display_unum8bit(18, Line5, timerun->Sec%100%10);
这样个位显示没问题,十位一直是0
把IAR速度优化优先级设置为中就没问题,或者是把两句中间加个1US的延时函数也可以,再或者把第二句改成
LCD_Display_unum8bit(18, Line5, timerun->Sec);
甚至是
LCD_Display_unum8bit(18, Line5, timerun->Sec%100);
都不会出问题,就是不能把"%10"加上,一加上十位就不正常显示(个位仍正常显示),十位一直显示0,仿真的时候看变量值是正确的,就是显示出来不对  
我的延时函数不是用那种循环来实现的,关于volatile的问题我已经注意了
有没有哪位遇到过相同问题的 过来讨论下

void LCD_Display_unum8bit(uint8_t Xpos,uint16_t Ypos,uint8_t num8bit)
{
  uint8_t Ascii;
  uint16_t xaddress;
  xaddress=Xpos*8;
  if(num8bit>9) num8bit=num8bit%100%10;
  Ascii=0x30+num8bit;
  LCD_DrawChar(xaddress, Ypos, &Ascii16[Ascii * 16],8);
}
chenxiongone 发表于 2012-1-30 10:45 | 显示全部楼层
yybj 发表于 2012-1-30 10:47 | 显示全部楼层
底层硬件驱动编写特别要注意延时的问题。
sinadz 发表于 2012-1-31 22:10 | 显示全部楼层
这个难度不小
火箭球迷 发表于 2012-1-31 22:24 | 显示全部楼层
优化问题一般都比较难
czdo 发表于 2012-2-3 20:45 | 显示全部楼层
玩到这里的应该多是高手了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

196

主题

2726

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部