#include <iom64v.h>
#include <macros.h>
#include <eeprom.h>
unsigned char k1,k2;//
void mcu_init(void) //单片机初始化
{
CLI(); //全局中断标志禁止
EIMSK|=BIT(0);
EICRA&=~(BIT(0)|BIT(2)|BIT(1)|BIT(3));//低电平中断
EIFR&=~BIT(0);EIFR&=~BIT(1);EIFR&=~BIT(3);
SEI(); //全局中断标志使能
}
#pragma interrupt_handler Start:2 //Mega64的INT0
//这是上电开机中断,K2记录开机的次数,但是问题就在这,每一次复位后,k2的值读出来就有问题
void Start()
{
unsigned char i;
k1=EEPROMread(0x01);
if(k1==255)k1++;k2++;
EEPROMwrite(0x01,k2);
}
/****************主函数**********************************/
void main(void)
{
mcu_init(); //单片机,
while(1)
{
;
}
}
请高手给指点一下,中断里面关于EEPROM的读写有什么问题?谢谢~~~~ |