打印
[AVR单片机]

使用cvavr的兄弟们帮我,关于结构体中的指针变量定义

[复制链接]
3165|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
自民|  楼主 | 2009-12-26 22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AVR, TE, ISP, ST, top
原来MCU是用51的,现在改为ATmega128L,用CODE VISION AVR编译器时,不认指针变量,在CODE VISION AVR编译器里面,只能指向SRAM存储器中,那下面程序要怎么改才行啊!时间很紧帮帮忙!

typedef struct{
        byte KeyStateIndex; //当前状态索引号
        byte KeyUpState; //按下"向上"键时转向的状态索引号
        byte KeyDnState; //按下"向下"键时转向的状态索引号
        byte KeyentState;  //按下"确认"键时转向的状态索引号
        byte KeyescState;  //按下"退出"键时转向的状态索引号
        void (*CurrentOperate)(); //当前状态应该执行的功能操作
} KbdTabStruct;

flash KbdTabStruct KeyTab[]={
//       |-----------> Index
//       |  Up
//       |  |  Down
//       |  |  |  ent
//       |  |  |  |  esc     --->功能函数
//       |  |  |  |  |       |
       { 0, 1, 2, 3, 4,(*DispMenuTop)},// 待机画面
       { 1, 0, 0, 0, 0,(*DispMenuTopUp)},
       { 2, 0, 0, 0, 0,(*DispMenuTopDown)},
       { 3, 0, 0, 0, 0,(*DispMenuTopent)},
       { 4, 0, 0, 0, 0,(*DispMenuTopesc)},

       { 5, 6, 7, 8, 9,(*DispIcoMenuInit)}, //主菜单
       { 6, 0, 0, 0, 0,(*DispIcoMenuUp)},   //
       { 7, 0, 0, 0, 0,(*DispIcoMenuDown)}, //
       { 8, 0, 0, 0, 0,(*DispIcoMenuent)}, //
       { 9, 0, 0, 0, 0,(*DispIcoMenuesc)},//
……}

相关帖子

沙发
laslison| | 2009-12-27 22:40 | 只看该作者
这个程序看起来像某种小图像

使用特权

评论回复
板凳
自民|  楼主 | 2009-12-28 08:28 | 只看该作者
一个占用内存极少的菜单系统

使用特权

评论回复
地板
自民|  楼主 | 2009-12-28 11:21 | 只看该作者
找到了,声名有问题!
正确的是!

void (*KeyFuncPtr)(); //按键功能指针

typedef struct{
        byte KeyStateIndex; //当前状态索引号
        byte KeyUpState; //按下"向上"键时转向的状态索引号
        byte KeyDnState; //按下"向下"键时转向的状态索引号
        byte KeyentState;  //按下"确认"键时转向的状态索引号
        byte KeyescState;  //按下"退出"键时转向的状态索引号
        void (*CurrentOperate)(); //当前状态应该执行的功能操作
} KbdTabStruct;

KbdTabStruct  KeyTab[]  ={
//       |-----------> Index
//       |  Up
//       |  |  Down
//       |  |  |  ent
//       |  |  |  |  esc     --->功能函数
//       |  |  |  |  |       |
       { 0, 1, 2, 3, 4,(DispMenuTop)},// 待机画面
       { 1, 0, 0, 0, 0,(DispMenuTopUp)},
       { 2, 0, 0, 0, 0,(DispMenuTopDown)},
       { 3, 0, 0, 0, 0,(DispMenuTopent)},
       { 4, 0, 0, 0, 0,(DispMenuTopesc)},

       { 5, 6, 7, 8, 9,(DispIcoMenuInit)}, //主菜单
       { 6, 0, 0, 0, 0,(DispIcoMenuUp)},   //
       { 7, 0, 0, 0, 0,(DispIcoMenuDown)}, //
       { 8, 0, 0, 0, 0,(DispIcoMenuent)}, //
       { 9, 0, 0, 0, 0,(DispIcoMenuesc)},//
...
}

使用特权

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

本版积分规则

47

主题

195

帖子

2

粉丝