打印
[其他产品]

原程序开发环境: AVRStudio 改为IAR for AVR 出现7个错误 3个警...

[复制链接]
1432|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laocuo1142|  楼主 | 2021-9-2 10:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

原程序开发环境: AVRStudio

  现在改为IAR for AVR  出现7个错误  3个警告      

敬请老师给予指导

  • #include <ioavr.h>
  • #include "delay.h"
  • #define INT8U   unsigned char
  • #define INT16U  unsigned int
  • #define _BV(bit) (1 << (bit))
  • //按键定义
  • #define K1_DOWN() ((PINB & _BV(PB1)) == 0x00)   //前翻
  • #define K2_DOWN() ((PINB & _BV(PB4)) == 0x00)   //后翻
  • #define K3_DOWN() ((PINB & _BV(PB7)) == 0x00)   //自动刷新
  • //总画面数及当前画面页索引
  • INT8U MaxPage = 7, CurrentPageIndex = 0;
  • //控制是否继续显示下一幅图像的标识变量
  • enum {FALSE,TRUE} ShowNext = FALSE;
  • //12864LCD显示与屏幕测试相关函数
  • extern void LCD_Initialize();
  • extern void Ful1_Disp_ON_OFF(INT8U k);
  • extern void Disp_Checker(INT8U k);
  • extern void Disp_Frame();
  • extern void Disp_R();
  • extern void Disp_Clip();
  • extern void Disp_Picture();
  • //-----------------------------------------------------------------
  • // 按键扫描
  • //-----------------------------------------------------------------
  • void Scan_KEYs()
  • {
  •     if(K3_DOWN())           //开关合上时自动刷新
  •     {
  •         ShowNext = TRUE;
  •         if(++CurrentPageIndex == MaxPage) CurrentPageIndex = 0;
  •         _delay_ms(200);
  •     }
  •     else if(K1_DOWN())                       //前翻
  •     {
  •         ShowNext = TRUE;
  •         if(CurrentPageIndex > 0)
  •           CurrentPageIndex--;
  •         else
  •           CurrentPageIndex = MaxPage-1;
  •     }
  •     else if(K2_DOWN())                       //后翻
  •     {
  •         ShowNext = TRUE;
  •         if(++CurrentPageIndex == MaxPage) CurrentPageIndex = 0;
  •     }
  •     PORTA = ~_BV(CurrentPageIndex);      //刷新指示LED
  • }
  • //-----------------------------------------------------------------
  • // 主程序
  • //-----------------------------------------------------------------
  • int main()
  • {
  •     DDRA = 0xFF;  PORTA = 0xFF;      //配置端口
  •     DDRB = 0x00;  PORTB = 0xFF;
  •     DDRD = 0xFF;
  •     LCD_Initialize();  _delay_ms(5); //液晶初始化
  •     Full_Disp_ON_OFF(0);             //全屏不显示                         警告
  •     _delay_ms(200);
  •     Full_Disp_ON_OFF(1);             //全显(形成全黑色屏幕)
  •     while(1)
  •     {
  •         Scan_KEYs();                 //键盘扫描
  •         if(ShowNext == TRUE)
  •         {
  •             switch(CurrentPageIndex);
  •             {
  •                 case 0:Disp_R(); break;            //R字符平铺画面          错误
  •                 case 1:Disp_Frame(); break;        //方框                  错误
  •                 case 2:Ful1_Disp_ON_OFF(1); break; //全显(形成全黑色屏幕)  错误
  •                 case 3:Ful1_Disp_ON_OFF(0); break; //全不显(底色屏幕)      错误
  •                 case 4:Disp_Checker(1); break;     //正显棋板               错误
  •                 case 5:Disp_Checker(0); break;     //反显棋板               错误
  •                 case 6:Disp_Picture();  break;     //案例文件夹下的一幅图片  错误
  •             }
  •             ShowNext = FALSE;                                            //警告
  •         }
  •     }
  • }
  • //-----------------------------------------------------------------
  • // 显示案例文件夹下的一幅图片(代码与上一函数相同,区别仅在于使用了不同的点阵数组)
  • //-----------------------------------------------------------------
  • void Disp_Picture()
  • {
  •     INT8U i,j;
  •     Write_Command(LINE);         //设置显示起始行地址
  •     for(i=0; i<8; i++)           //全屏共输出8页
  •     {
  •         Write_Command(PAGE+i);    //选择第i页
  •         Write_Command(COL_H4);    //设置列地址高4位
  •         Write_Command(COL_L4);    //设置列地址低4位
  •         //用pgm_read_byte从程序Flash空间中读取点阵数据
  •         for(j=0; j<128; j++)      //每页显示128列,列地址自动递增
  •             Write_Data(pgm_read_byte(ICONs_Picture+i * 128+j));    //警告
  •     }
  • }


使用特权

评论回复
沙发
flycamelaaa| | 2021-9-2 10:42 | 只看该作者

switch(CurrentPageIndex); 把;去掉

使用特权

评论回复
板凳
powerantone| | 2021-9-2 10:42 | 只看该作者
去掉      switch(CurrentPageIndex);

     错误依旧     (错误  案例标签只能在开关)   理解是   case 0:Disp_R(); break;  不能放在主程序里   不知是否

使用特权

评论回复
地板
stormwind123| | 2021-9-2 10:43 | 只看该作者
switch(CurrentPageIndex); 把;去掉 是让你去掉分号,而不是去掉switch(CurrentPageIndex) 。。。

使用特权

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

本版积分规则

1025

主题

4239

帖子

10

粉丝