3136|10

34

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

原程序开发环境: AVRStudio 改为IAR for AVR 出现7个错误 3个警告 敬请指导 [复制链接]

原程序开发环境: 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));    //警告
    }
}

 

最新回复

switch(CurrentPageIndex); 把;去掉 是让你去掉分号,而不是去掉switch(CurrentPageIndex) 。。。  详情 回复 发表于 2021-3-4 20:49
点赞 关注
 

回复
举报

7671

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 

错误呢?

 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
本帖最后由 wang5825 于 2021-3-4 11:30 编辑

 

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; //案例文件夹下的一幅图片                错误   

Error[Pe121]: a case label may only be used within a switch

错误[Pe121]:案例标签只能在开关

 

 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

4
 

警告     Full_Disp_ON_OFF(0); //全屏不显示

            Warning[Pe223]: function "Full_Disp_ON_OFF" declared implicitly

            警告[Pe223]:函数“Full\u Disp\u ON\u OFF”隐式声明为

警告     ShowNext = FALSE;

           Warning[Pe111]: statement is unreachable   

            警告[Pe111]:语句无法访问

警告    Write_Data(pgm_read_byte(ICONs_Picture+i * 128+j));

            Warning[Pe223]: function "pgm_read_byte" declared implicitly 

            警告[Pe223]:隐式声明函数“pgm\u read\u byte”

            查找到函数  pgmspace.h  打开 没有 pgm_read_byte  不知怎么改

 
 
 

回复

361

帖子

5

TA的资源

一粒金砂(高级)

5
 

switch(CurrentPageIndex); 把;去掉

 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

6
 

去掉      switch(CurrentPageIndex); 

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

 
 
 

回复

1万

帖子

2853

TA的资源

管理员

7
 

楼主的问题解决了吗

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

8
 

谢谢    初学者  问题没有解决! 

    原想在别人的程序中  学习  但是学习过程中  问题很多  网上查找  很多问题没有答案

 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

9
 

iar for avr  本身带有pgmspace.h  打开查找 没有pgm_read_byte  函数

    网上查找到iar for avr 的pgmspace.h   有pgm_read_byte  函数   但是 加入   编辑  错误很多  不知怎么修改?

   敬请老师指导   谢谢!

 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

10
 

switch(CurrentPageIndex); 把;去掉 是让你去掉分号,而不是去掉switch(CurrentPageIndex) 。。。

 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

11
 

非常感谢 指导!  

       现在只有一个错误  pgm_read_byte 函数

      iar for avr  本身带有pgmspace.h  打开查找 没有pgm_read_byte  函数

 

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表