📄 main.c
字号:
#include <stdio.h>
#include <absacc.h>
#include <intrins.h>
#include <./Atmel/at89x52.h>
#include "source.h"
struct MY_TIMER TT[TIMER_NUM];
struct volt_detect volt_group;
TMDEV_OPS Opsgp;
void time2() interrupt T2_INT
{
unsigned char i;
for(i=0;i<TIMER_NUM;i++)
{
if(TT[i].enable==1)
{
if(TT[i].count==0)
{
TT[i].enable=0;
TT[i].flag=1;
}
else{
TT[i].count--;
}
}
}
TF2=0;
}
void start_timer(void)
{
T2CON=0X00;
RCAP2L=TIMER2L; //10ms
TL2=TIMER2L;
RCAP2H=TIMER2H;
TH2=TIMER2H;
ET2=1;//enable timer2 interrupt
TR2=1;//start timer
}
void reset_timer(unsigned char i)
{
TT[i].enable=0;
TT[i].count=0;
}
void set_timer(unsigned char i,unsigned int count) // time out counter*10ms
{
TT[i].count=count;
TT[i].enable=1;
TT[i].flag=0;
}
main()
{
unsigned char fsm_adc=0;
unsigned int V_ADJ=0,i;
EEPROM_DATA Eprom;
IE=0X40;
start_timer();/*开始定时器*/
EA=1; /* Enable interrupts */
TMOD=0x22;//timer1 mode 2 timer0 mode 2 (8 bit auto reload mode)
set_timer(WRITE_TIMER,WRITE_TIMER_LEN);
set_timer(READ_TIMER,READ_TIMER_LEN);
eeprom_read(OffsetOf(EEPROM_DATA,vol), sizeof(Eprom.vol),(unsigned char *)&Eprom.vol);
/*采用OffsetOf()宏可以知道成员函数在EEPROM中的具体地址位置,这样可以不用记住EEPROM中某个*/
/*存储变量的具体位置,以后添加存储变量更加灵活*/
eeprom_write(OffsetOf(EEPROM_DATA,cnt), sizeof(Eprom.cnt),(unsigned char *)&Eprom.cnt);
I2C_lineOpen(&I2c,100);//初10k
for(i=0;i<1204;i++){
Eprom.buf[i]=i&0xff;
}
while(1){
if(TT[WRITE_TIMER]){
set_timer(WRITE_TIMER,WRITE_TIMER_LEN);
if(!Opsgp.dealing)
At24c64_Write((unsigned char *)Eprom.buf,OffsetOf(EEPROM_DATA,buf),512);
}
if(TT[READ_TIMER]){
set_timer(READ_TIMER,READ_TIMER_LEN);
if(!Opsgp.dealing)
At24c64_Read((unsigned char *)Eprom.buf,OffsetOf(EEPROM_DATA,vol),512);
}
if(Opsgp.eeprom_read_over){
if(Opsgp.eeprom_read_over==1){
//Eeprom read ok.
}
else{
//Eeprom read error .
}
Opsgp.eeprom_read_over=0;
}
if(Opsgp.eeprom_write_over){
if(Opsgp.eeprom_write_over){
// Eprom Write Ok
}
else{
// Eprom Write Err
}
Opsgp.eeprom_write_over=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -