打印
[AVR单片机]

ICCAVR中访问外设与内部SRAM地址冲突的问题!!!

[复制链接]
2146|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cxiang2001|  楼主 | 2007-1-18 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ICCAVR中访问外设与内部SRAM地址相冲突的问题!!!程序如下: 
/*利用74HC573扩展的LCD显示*/ 
extern uchar LCD_DATA,LCD_ISR; 
#define LCD_DATA (*(volatile unsigned char *)0x5ffe) 
#define LCD_ISR  (*(volatile unsigned char *)0x5fff) 
/*定义全局变量-----当在ICC中Compile options下选择internal sram时,以下全局变量会分配在内部SRAM中;而当选择External 32K sram时,以下全局变量会分配在外部SRAM中.但我现在没有扩展SRAM,只是扩展了外设LCD,我到底选择哪一个呢?*/ 
#pragma data:data   //sram address:0x0100-0x10ff 
 uchar StateFlag=0x00; 

void main(void) 

 delay_ms(1000); 
 MCUSR=(1<<SRE);  //SRW11=1;SRW10=0;  //upper sector are available //wait two cycles 
XMCRA=0x44; 
  
 while(1)  
   LCD_ISR=StateFlag;  //执行有误 
  

硬件连接应该是没有问题的, 我选择External 32K sram时,显示是成功的,可正常显示出字符,汉字,可全局变量全部乱掉了,比如StageFlag初始化为0,可开始一读就是0x38,很奇怪的. 我用的是MEGA128 
选择internal sram 时,就没显示了.但全局变量正常,似乎就是LCD_ISR=StageFlag这种语句没正常工作 

相关帖子

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

本版积分规则

14

主题

21

帖子

1

粉丝