код ацп меряет напругу нисходящую

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
neid
Прорезались зубы
Сообщения: 228
Зарегистрирован: Пн окт 04, 2010 11:55:41

код ацп меряет напругу нисходящую

Сообщение neid »

Всем привет, помогите написать код, точнее часть кода:
http://s014.radikal.ru/i326/1010/5d/e8dd7488b72a.jpg
код сам вот взял с сайта тогоже где и схему:

Код: Выделить всё

#include <mega8.h> 
#include <delay.h>
#define FIRST_ADC_INPUT 0
#define LAST_ADC_INPUT 0
unsigned char adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];
#define ADC_VREF_TYPE 0x20
interrupt [ADC_INT] void adc_isr(void)
{
static unsigned char input_index=0;

adc_data[input_index]=ADCH;

if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
input_index=0;
ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index;
 
delay_us(10);

ADCSRA|=0x40;
}
void main(void)
{
PORTD=0x00;
DDRD=0xFF;

ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff);
ADCSRA=0xCC;
#asm("sei")
while (1)
{
if(adc_data[0]>10) PORTD.0=1; //ADC>10 (~0.2V)
else PORTD.0=0;
if(adc_data[0]>70) PORTD.1=1; //ADC>70 (~1.4)
else PORTD.1=0;
if(adc_data[0]>130) PORTD.2=1; //~2.5
else PORTD.2=0;
if(adc_data[0]>190) PORTD.3=1; //~3.7
else PORTD.3=0;
if(adc_data[0]>250) PORTD.4=1; //~ 4.9
else PORTD.4=0;
};
}

у меня же задача переписать его под мегу 32, и самое главное что бы светики включались когда напряжение уменьшается, сначало 5в, потом 4в, 3в и т.д.
stas00n
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Re: код ацп меряет напругу нисходящую

Сообщение stas00n »

Вроде бы достаточно заменить подключаемый файл на mega32.h и скомпилировать. Должно заработать. Не забудьте вывод Aref подключить.
Аватара пользователя
Hoksmur
Родился
Сообщения: 19
Зарегистрирован: Пт окт 22, 2010 12:24:24

Re: код ацп меряет напругу нисходящую

Сообщение Hoksmur »

Не совсем в тему - у Атмеловких железок светодиоды лучше к плюсу питания подключать - поглощаемый ток больше. То есть с общим анодом - 20 мА, с общим катодом - 10мА в максимуме.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»