?? nicd.i
字號:
#line 1 "nicd.c"
#line 23 "nicd.c"
#line 1 "D:\avr\電路設計\充電器程序\2333_C/NiCd.h"
#line 21 "D:\avr\電路設計\充電器程序\2333_C/NiCd.h"
#line 1 "C:/icc/include/ina90.h"
#line 1 "C:/icc/include/macros.h"
#line 33 "C:/icc/include/macros.h"
void _StackCheck(void);
void _StackOverflowed(char);
#line 3 "C:/icc/include/ina90.h"
#line 25 "D:\avr\電路設計\充電器程序\2333_C/NiCd.h"
#line 1 "C:/icc/include/math.h"
float fabs(float x);
float frexp(float x, int *eptr);
float tanh(float x);
float sin(float x);
float atan(float x);
float atan2(float y, float x);
float asin(float x);
float exp10(float x);
float log10i(float x);
float log10(float x);
float fmod(float y, float z);
float sqrt(float x);
float cos(float x);
float ldexp(float d, int n);
float modf(float y, float *i);
float floor(float y);
float ceil(float y);
float fround(float d);
float tan(float x);
float acos(float x);
float exp(float x);
float log(float x);
float pow(float x,float y);
float sinh(float x);
float cosh(float x);
#line 50 "C:/icc/include/math.h"
#line 26 "D:\avr\電路設計\充電器程序\2333_C/NiCd.h"
#line 1 "D:\avr\電路設計\充電器程序\2333_C/BC.H"
#line 18 "D:\avr\電路設計\充電器程序\2333_C/BC.H"
#line 1 "D:\avr\電路設計\充電器程序\2333_C/io2333.h"
#line 9 "D:\avr\電路設計\充電器程序\2333_C/io2333.h"
#pragma language=extended
#line 22 "D:\avr\電路設計\充電器程序\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 "D:\avr\電路設計\充電器程序\2333_C/io2333.h"
#line 20 "D:\avr\電路設計\充電器程序\2333_C/BC.H"
#line 1 "C:/icc/include/ina90.h"
#line 1 "C:/icc/include/macros.h"
#line 33 "C:/icc/include/macros.h"
#line 3 "C:/icc/include/ina90.h"
#line 21 "D:\avr\電路設計\充電器程序\2333_C/BC.H"
#line 1 "D:\avr\電路設計\充電器程序\2333_C/BC_debug.H"
#line 18 "D:\avr\電路設計\充電器程序\2333_C/BC_debug.H"
#line 1 "D:\avr\電路設計\充電器程序\2333_C/io2333.h"
#line 9 "D:\avr\電路設計\充電器程序\2333_C/io2333.h"
#pragma language=extended
#line 22 "D:\avr\電路設計\充電器程序\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 "D:\avr\電路設計\充電器程序\2333_C/io2333.h"
#line 20 "D:\avr\電路設計\充電器程序\2333_C/BC_debug.H"
#line 1 "C:/icc/include/ina90.h"
#line 1 "C:/icc/include/macros.h"
#line 33 "C:/icc/include/macros.h"
#line 3 "C:/icc/include/ina90.h"
#line 21 "D:\avr\電路設計\充電器程序\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 "D:\avr\電路設計\充電器程序\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 "D:\avr\電路設計\充電器程序\2333_C/BC.H"
#line 27 "D:\avr\電路設計\充電器程序\2333_C/NiCd.h"
void FAST_charge(void);
void TRICKLE_charge(void);
#line 25 "nicd.c"
extern time_struct time;
void FAST_charge(void)
{
char fast_finish_hour = 0;
char trickle_finish_min = 0;
int last_min_temp = 0;
int last_min_volt = 0;
int temp = 0;
int temp2 = 0;
char last_min = 0;
char last_sec = 0;
int top_volt = 0;
int new_top_volt = 0;
char i = 0;
int last_temp = 0;
time.sec = 0x00;
time.min = 0x00;
time.hour = 0x00;
time.t_count = 0x3878;
OCR1 = 0x00;
TCCR1B = 0x01;
temp = Battery(5);
if ((temp < 0x02C7) && (temp > 0x0175))
{
temp2 = Battery(3);
if (temp2 <(int)((CELLS * 1600)/VOLTAGE_STEP))
{
if (temp < 0x0296)
{
OCR1 = 0x00;
TCCR1B = 0x01;
last_min_temp = Battery(5);
last_min_volt = Battery(3);
trickle_finish_min = (time.min + 0x5A);
fast_finish_hour = time.hour;
while (trickle_finish_min > 60)
{
trickle_finish_min = trickle_finish_min - 60;
fast_finish_hour++;
}
while (((EEAR & (0x01))) && (!((EEAR & (0x04)))))
{
do
{
temp = Battery(1);
if ((temp < ((int)(CAPACITY /CURRENT_STEP)+1))&&(OCR1 < 0xFF))
{
OCR1++;
}
else if ((temp > ((int)(CAPACITY /CURRENT_STEP)-1))&&(OCR1 > 0x00))
{
OCR1--;
}
}while (temp !=(int)(CAPACITY /CURRENT_STEP));
#line 108 "nicd.c"
if ((time.hour == fast_finish_hour)&&(time.min == trickle_finish_min))
{
#line 120 "nicd.c"
Stop_PWM();
(EEDR |= (0x10));
(EEAR |= (0x04));
}
temp = Battery(5);
if ( temp < 0x0175)
{
#line 134 "nicd.c"
Stop_PWM();
(EEDR |= (0x02));
(EEAR |= (0x04));
}
temp = Battery(3);
if (temp >(int)((CELLS * 1600)/VOLTAGE_STEP))
{
#line 148 "nicd.c"
Stop_PWM();
(EEDR |= (0x20));
(EEAR |= (0x04));
}
if (time.min != last_min)
{
last_min = time.min;
temp = Battery(3);
if ((last_min_volt - temp) >(int)(ceil((CELLS * 0x14)/VOLTAGE_STEP)))
{
#line 168 "nicd.c"
Stop_PWM();
(EEDR |= (0x40));
(EEAR &= (~(0x01)));
(EEAR |= (0x02));
}
last_min_volt = temp;
#line 182 "nicd.c"
temp = Battery(5);
if ((last_min_temp - temp) >= ntc_c[((temp-400)/25)])
{
#line 189 "nicd.c"
Stop_PWM();
(EEDR |= (0x80));
(EEAR &= (~(0x01)));
(EEAR |= (0x02));
}
last_min_temp = temp;
}
}
}
else if(!((EEAR & (0x04))))
{
#line 208 "nicd.c"
(EEDR |= (0x01));
(EEAR |= (0x04));
}
}
else if(!((EEAR & (0x04))))
{
#line 222 "nicd.c"
(EEDR |= (0x20));
(EEAR |= (0x04));
}
}
else if(!((EEAR & (0x04))))
{
if (temp < 0x02C7)
{
(EEDR |= (0x01));
}
else
{
(EEAR |= (0x02));
}
(EEAR |= (0x04));
}
}
void TRICKLE_charge(void)
{
int temp = 0;
time.sec = 0x00;
time.min = 0x00;
time.hour = 0x00;
time.t_count = 0x3878;
OCR1 = 0x00;
TCCR1B = 0x01;
while (((EEAR & (0x02))) && (!((EEAR & (0x04)))))
{
temp = Battery(5);
if ((temp < 0x02C7) || (temp > 0x0175))
{
temp = Battery(3);
if (temp <(int)((CELLS * 1600)/VOLTAGE_STEP))
{
do
{
temp = Battery(1);
if ((temp <(int)((CAPACITY * 0.025)/CURRENT_STEP)) && (OCR1 < 0xFF))
{
OCR1++;
}
else if ((temp >(int)((CAPACITY * 0.025)/CURRENT_STEP)) && (OCR1 > 0x00))
{
OCR1--;
}
} while (temp !=(int)((CAPACITY * 0.025)/CURRENT_STEP));
}
else if(!((EEAR & (0x04))))
{
#line 311 "nicd.c"
Stop_PWM();
(EEDR |= (0x20));
(EEAR |= (0x04));
}
}
else if(!((EEAR & (0x04))))
{
#line 325 "nicd.c"
Stop_PWM();
if (temp < 0x02C7)
{
(EEDR |= (0x01));
}
else
{
(EEDR |= (0x02));
}
(EEAR |= (0x04));
}
}
Stop_PWM();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -