📄 bc.i
字号:
#line 1 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
#line 20 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
#line 1 "E:\新建文件夹\AVR450~1\2333_C/BC.H"
#line 18 "E:\新建文件夹\AVR450~1\2333_C/BC.H"
#line 1 "E:\新建文件夹\AVR450~1\2333_C/io2333.h"
#line 9 "E:\新建文件夹\AVR450~1\2333_C/io2333.h"
#pragma language=extended
#line 22 "E:\新建文件夹\AVR450~1\2333_C/io2333.h"
sfrb UBRRH = 0x03;
sfrw ADC = 0x04;
sfrb ADCL = 0x04;
sfrb ADCH = 0x05;
sfrb ADCSR = 0x06;
sfrb ADMUX = 0x07;
sfrb ACSR = 0x08;
sfrb UBRR = 0x09;
sfrb UBRRL = 0x09;
sfrb UCR = 0x0A;
sfrb USR = 0x0B;
sfrb UDR = 0x0C;
sfrb SPCR = 0x0D;
sfrb SPSR = 0x0E;
sfrb SPDR = 0x0F;
sfrb PIND = 0x10;
sfrb DDRD = 0x11;
sfrb PORTD = 0x12;
sfrb PINC = 0x13;
sfrb DDRC = 0x14;
sfrb PORTC = 0x15;
sfrb PINB = 0x16;
sfrb DDRB = 0x17;
sfrb PORTB = 0x18;
sfrb EECR = 0x1C;
sfrb EEDR = 0x1D;
sfrw EEAR = 0x1E;
sfrb EEARL = 0x1E;
sfrb EEARH = 0x1F;
sfrb WDTCR = 0x21;
sfrw ICR1 = 0x26;
sfrb ICR1L = 0x26;
sfrb ICR1H = 0x27;
sfrw OCR1 = 0x2A;
sfrb OCR1L = 0x2A;
sfrb OCR1H = 0x2B;
sfrw TCNT1 = 0x2C;
sfrb TCNT1L = 0x2C;
sfrb TCNT1H = 0x2D;
sfrb TCCR1B = 0x2E;
sfrb TCCR1A = 0x2F;
sfrb TCNT0 = 0x32;
sfrb TCCR0 = 0x33;
sfrb MCUSR = 0x34;
sfrb MCUCR = 0x35;
sfrb TIFR = 0x38;
sfrb TIMSK = 0x39;
sfrb GIFR = 0x3A;
sfrb GIMSK = 0x3B;
sfrb SP = 0x3D;
sfrb SPL = 0x3D;
sfrb SREG = 0x3F;
#line 192 "E:\新建文件夹\AVR450~1\2333_C/io2333.h"
#line 20 "E:\新建文件夹\AVR450~1\2333_C/BC.H"
#line 1 "C:/icc/include/ina90.h"
#line 1 "C:/icc/include/macros.h"
#line 35 "C:/icc/include/macros.h"
void _StackCheck(void);
void _StackOverflowed(char);
#line 3 "C:/icc/include/ina90.h"
#line 21 "E:\新建文件夹\AVR450~1\2333_C/BC.H"
#line 1 "E:\新建文件夹\AVR450~1\2333_C/BC_debug.H"
#line 18 "E:\新建文件夹\AVR450~1\2333_C/BC_debug.H"
#line 1 "E:\新建文件夹\AVR450~1\2333_C/io2333.h"
#line 9 "E:\新建文件夹\AVR450~1\2333_C/io2333.h"
#pragma language=extended
#line 22 "E:\新建文件夹\AVR450~1\2333_C/io2333.h"
sfrb UBRRH = 0x03;
sfrw ADC = 0x04;
sfrb ADCL = 0x04;
sfrb ADCH = 0x05;
sfrb ADCSR = 0x06;
sfrb ADMUX = 0x07;
sfrb ACSR = 0x08;
sfrb UBRR = 0x09;
sfrb UBRRL = 0x09;
sfrb UCR = 0x0A;
sfrb USR = 0x0B;
sfrb UDR = 0x0C;
sfrb SPCR = 0x0D;
sfrb SPSR = 0x0E;
sfrb SPDR = 0x0F;
sfrb PIND = 0x10;
sfrb DDRD = 0x11;
sfrb PORTD = 0x12;
sfrb PINC = 0x13;
sfrb DDRC = 0x14;
sfrb PORTC = 0x15;
sfrb PINB = 0x16;
sfrb DDRB = 0x17;
sfrb PORTB = 0x18;
sfrb EECR = 0x1C;
sfrb EEDR = 0x1D;
sfrw EEAR = 0x1E;
sfrb EEARL = 0x1E;
sfrb EEARH = 0x1F;
sfrb WDTCR = 0x21;
sfrw ICR1 = 0x26;
sfrb ICR1L = 0x26;
sfrb ICR1H = 0x27;
sfrw OCR1 = 0x2A;
sfrb OCR1L = 0x2A;
sfrb OCR1H = 0x2B;
sfrw TCNT1 = 0x2C;
sfrb TCNT1L = 0x2C;
sfrb TCNT1H = 0x2D;
sfrb TCCR1B = 0x2E;
sfrb TCCR1A = 0x2F;
sfrb TCNT0 = 0x32;
sfrb TCCR0 = 0x33;
sfrb MCUSR = 0x34;
sfrb MCUCR = 0x35;
sfrb TIFR = 0x38;
sfrb TIMSK = 0x39;
sfrb GIFR = 0x3A;
sfrb GIMSK = 0x3B;
sfrb SP = 0x3D;
sfrb SPL = 0x3D;
sfrb SREG = 0x3F;
#line 192 "E:\新建文件夹\AVR450~1\2333_C/io2333.h"
#line 20 "E:\新建文件夹\AVR450~1\2333_C/BC_debug.H"
#line 1 "C:/icc/include/ina90.h"
#line 1 "C:/icc/include/macros.h"
#line 35 "C:/icc/include/macros.h"
#line 3 "C:/icc/include/ina90.h"
#line 21 "E:\新建文件夹\AVR450~1\2333_C/BC_debug.H"
void Inituart(unsigned char);
void Send_int(int);
void Send_char(char);
void Send_state_change(void);
void Send_charge_state(void);
void Send_CR_LF (void);
#line 22 "E:\新建文件夹\AVR450~1\2333_C/BC.H"
int Battery(unsigned char);
void Setup(void);
void Stop_PWM(void);
void Stable_ADC(void);
void interrupt[(0x0A)] T1Ovf(void);
extern void FAST_charge(void);
extern void TRICKLE_charge(void);
typedef struct
{
int t_count;
char sec;
char min;
char hour;
}time_struct;
#line 105 "E:\新建文件夹\AVR450~1\2333_C/BC.H"
#line 22 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
time_struct time;
void Setup(void)
{
TCCR1A = 0x81;
TIFR = 0x80;
TIMSK = 0x80;
TCNT1 = 0x00;
TCCR1B = 0x00;
PORTC = 0x00;
DDRC = 0x00;
PORTB = 0xFF;
DDRB = 0xFF;
PORTD = 0xFF;
ADCSR = 0x96;
EEAR = 0x00;
time.sec = 0x00;
time.min = 0x00;
time.hour = 0x00;
time.t_count = 0x3878;
asm("sei");
}
void Stop_PWM(void)
{
if ((EEDR == 0x00)&&(TCCR1B & (1<< 0))&&(OCR1 != 0))
{
if (OCR1 == 1)
{
while(TCNT1 > 2);
while(TCNT1 < 2);
}
else
{
while(TCNT1 > OCR1);
while(OCR1 > TCNT1);
}
TCCR1B = 0x00;
}
}
void Stable_ADC(void)
{
int V[4];
char i;
int Vmax, Vmin;
for (Vmax=10,Vmin= 0;Vmax > (Vmin+1);)
{
V[3] = V[2];
V[2] = V[1];
V[1] = V[0];
ADCSR |= 0x40;
while (!(ADCSR & (1<< 4)))
;
V[0] = ADC;
Vmin = V[0];
Vmax = V[0];
for (i=0;i<=3;i++)
{
if (V[i] > Vmax)
Vmax=V[i];
if (V[i] < Vmin)
Vmin=V[i];
}
}
}
int Battery(unsigned char value)
{
char i;
int av;
switch (value)
{
case 33 :
#line 130 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
Stop_PWM();
ADMUX = 5;
Stable_ADC();
break;
case 5 :
#line 137 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
Stop_PWM();
ADMUX = 3;
Stable_ADC();
break;
case 3 :
#line 144 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
ADMUX = 5;
break;
case 1 :
#line 149 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
ADMUX = 4;
break;
}
for(av=0,i=8;i;--i)
{
ADCSR |= 0x40;
while (!(ADCSR & (1<< 4)))
;
av = av+ADC;
}
av = av/8;
TCCR1B = 0x01;
(ADCSR &= (~(4)));
switch (value)
{
case 33 :
if(av <= battery_volt_min)
battery_volt_min = av;
if (av > battery_volt_max)
battery_volt_max = av;
break;
case 5 :
if (av <= temperature_min)
temperature_min = av;
if(av > temperature_max)
temperature_max = av;
break;
case 3 :
if (av <= charge_volt_min)
charge_volt_min = av;
if (av > charge_volt_max)
charge_volt_max = av;
break;
case 1 :
break;
}
return(av);
}
void main(void)
{
Setup();
Send_CR_LF();
for (;;)
{
#line 204 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
(EEAR |= (0x01));
EEDR = 0x00;
(PORTB |= ((0x01 + 0x04 + 0x08 + 0x10)));
while ((PIND & (1<< 4)));
while (!((EEAR & (0x04))))
{
if (((EEAR & (0x01))) && (!((EEAR & (0x04)))))
{
#line 218 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
(PORTB |= ((0x01 + 0x04 + 0x08 + 0x10)));
(PORTB &= (~((0x01))));
EEDR = 0x00;
EEAR = 0x00;
FAST_charge();
}
if (((EEAR & (0x02))) && (!((EEAR & (0x04)))))
{
#line 235 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
(PORTB |= ((0x01 + 0x04 + 0x08 + 0x10)));
(PORTB &= (~((0x04))));
EEDR = 0x00;
EEAR = 0x00;
TRICKLE_charge();
FAST_charge();
}
}
if ((EEAR & (0x04)))
{
#line 253 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
(PORTB |= ((0x01 + 0x04 + 0x08 + 0x10)));
(PORTB &= (~(0x10)));
for(;;);
}
}
}
void interrupt[(0x0A)] T1Ovf(void)
{
if (0x0000 == --time.t_count)
{
if ( 60 == ++time.sec )
{
if ( 60 == ++time.min )
{
if ( 24 == ++time.hour )
{
time.hour = 0x00;
}
time.min = 0x00;
}
time.sec = 0x00;
if (((EEAR & (0x02))) && (!((EEAR & (0x04)))))
{
if (time.sec % 2)
(PORTB &= (~((0x04))));
else
(PORTB |= ((0x04)));
}
}
time.t_count = 0x3878;
}
}
#line 346 "E:\新建文件夹\AVR450~1\2333_C\BC.c"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -