问题仍未解决,请各位老大帮忙了(应该可以了,试试吧)
这是我以前设计的一段eeprom操作程序,目的是在eeprom中永久保留几个报警变量,
上电后首先检查eeprom地址0xf9值是否为0xaa,
如果是说明地址0xfa、0xfb、0xfe、0xff值被设置
过,则读取赋给相应变量,否则将这些地址赋默认值。
问题是这段程序在cvavr1.24.5中可以编释通过,
1.25版却报一大堆错误。(不过好象都是一个错误。)
#include <mega16.h>
void main(void)
{
unsigned char eeprom *ptr;
unsigned char gbjh,dbjh,glsh,dlsh;
ptr=0xf9;
if(*ptr==0xaa)
{
ptr=0xfa;
gbjh=*ptr;
ptr=0xfb;
dbjh=*ptr;
ptr=0xfe;
glsh=*ptr;
ptr=0xff;
dlsh=*ptr;
}
else
{
gbjh=14;
dbjh=6;
glsh=16;
dlsh=4;
ptr=0xfa;
*ptr=gbjh;
ptr=0xfb;
*ptr=dbjh;
ptr=0xfe;
*ptr=glsh;
ptr=0xff;
*ptr=dlsh;
}
while (1)
{
// Place your code here
//这后面有按键改写eeprom内容的程序
};
}
请问各位老大,该如何解决呀?
我用的新版是1.25.5专业版就这几行就有错误,
我在新版里新建了工程,编译还是通不过,而新版的这个工程在拿到1.24里就通过了,
我跟本就不会英语,看不懂是什么错误,请用两个版编译一下就知道了,
1.24版通过,1.25以上的就会出错,如果只有1.25版编译一下就会看到错误了,
请问1.25版访问eeprom是不是有了新方法。 我手里没有这个版本,你为何不用新的版本的. 1.25.8要口令,1.25.4 1.25.5 都是一样的问题。
你用1.25.8编绎一下看看,我想也会出错,
我想是不是cvavr在eepror的访问上有了新方法,
这段程序现在我还在用,只是只能在1.24版上编绎。 /*****************************************************
This program was produced by the
CodeWizardAVR V1.25.8 Professional
Automatic Program Generator
?Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 2008-1-27
Author: cma
Company : ECNU
Comments:
Chip type : ATmega16
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size: 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
// Declare your global variables here
void main(void)
{
unsigned char eeprom*ptr;
unsigned char gbjh,dbjh,glsh,dlsh;
ptr = (char eeprom *)0xf9;
if(*ptr==0xaa)
{
ptr++;
gbjh=*ptr;
ptr=(char eeprom *)0xfb;
dbjh=*ptr;
ptr=(char eeprom *)0xfe;
glsh=*ptr;
ptr=(char eeprom *)0xff;
dlsh=*ptr;
}
else
{
gbjh=14;
dbjh=6;
glsh=16;
dlsh=4;
ptr=(char eeprom *)0xfa;
*ptr=gbjh;
ptr=(char eeprom *)0xfb;
*ptr=dbjh;
ptr=(char eeprom *)0xfe;
*ptr=glsh;
ptr=(char eeprom *)0xff;
*ptr=dlsh;
}
while (1)
{
// Place your code here
//这后面有按键改写eeprom内容的程序
};
}
页:
[1]