serpa писал(а):мозг потренировать
Было б чем тренировать. Тривиальная задача — обработка данных АЦП и их модификация для вывода экран/дисплей.
serpa писал(а):мозг потренировать
serpa писал(а):Для меня это мегазадача. Только что-то никто за тривиальную задачу не хочет браться
serpa писал(а):Необходим вольтметр на БП до 99.9 есть в наличие PIC16F73 AT89C2051 ATmega162. Кто-нибудь собирал на данных МК?
Ничегонеработает писал(а):serpa писал(а):Необходим вольтметр на БП до 99.9 есть в наличие PIC16F73 AT89C2051 ATmega162. Кто-нибудь собирал на данных МК?
На КР572ПВ2 получится значительно точнее.
Ничегонеработает писал(а):А на AT89C2051 когда-то тоже собирал вольтметр, АЦП делал на встроенном компараторе и внешней емкости, которая заряжалась генератором тока. Там описан принцип и есть исходник на asm:
http://www.telesys-ru.1gb.ru/electronic ... hp?do=p037
serpa писал(а):Вот. Ну неужели у нас такие люди корыстные, откуда я родом.
Ничегонеработает писал(а):На КР572ПВ2
Soir писал(а):а городить "Какой-нибудь ацп напряжение во время и счётчик потом, дешифратор и дисплей" - мазохизм.
Avarges писал(а): А вот в зеркале люди жмотливые - сходите посмотрите.
Код: Выделить всё
DDRB = 0xFB; // порт 2 работает как вход
PORTB = 0x04; // B2 - высокий уровень
GIMSK = 0x40; // разрешение прерывания от INT0
MCUCR = 0x02; // прерывание реагирует на задний фронт
TIMSK1 = 0x02; // Output Compare A Match Interrupt Enable
TCCR1B = 0x06; // таймер считает импульсы от Т1 при переходе в нижний уровень
OCR1AH = 0x00; // забиваем значение на сравнение
OCR1AL = 0x03; // выставил 3, чтобы при отладке меньше клацать:)
sei ();
Avarges писал(а): А вот в зеркале люди жмотливые - сходите посмотрите.
slavokhire5 писал(а):косяк в инициализации. помогите найти новичку)
Код: Выделить всё
TCCR1B = 0x06; // таймер считает импульсы от Т1 при переходе в нижний уровень
Код: Выделить всё
TCCR1B = (1 << CS12) | (1 << CS11); // таймер считает импульсы от Т1 при переходе в нижний уровень
Код: Выделить всё
ISR(TIM1_COMPA_vect)
{
/*увеличение числа сотен метров. прерывание при достижении счетчиком значения max == 425*/
TCNT1L = 0;
TCNT1H = 0;
Код: Выделить всё
TCNT1= 0;