Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
char test_battery()
{
#define ADC_VREF_TYPE 0x40 // ADC Voltage Reference: AVCC pin
#define ADC_CHANNEL 0x0e // ADC канал 1.1В (Vbg)
// 2.0V - 546
// 2.2V - 496
// 2.4V - 455
// 3.0V - 360
// 3.3V - 328
// ADC initialization
// ADC Clock frequency: 62,500 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: None
// Digital input buffers on ADC0: On, ADC1: On, ADC2: On, ADC3: On
// ADC4: On, ADC5: On
char itog;
int temp;DIDR0=0x00;
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x86;
ADMUX=ADC_CHANNEL |ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10; // результаты первого преобразования пропускаемADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;temp = ADCW;
ADCSRA=0x00; // выключим ADC
ADMUX=0;itog = (500-temp)/30 +1; // масштабирование 3.0 - 2.2 в (1-4 деления)
if (itog<1) itog=1;
if (itog>4) itog=4;
return itog;
}