Нет у меня софта,чтобы просмотреть Ваш труд.Хотелось бы посоветовать:ведь главная изюминка Вашей программы аналоговый компаратор,а Вы его пока запустить не можете.Тогда зачем утежелять себе жизнь пока не нужным софтом,типа UARTA,вывода на дисплей и т.д.Когда зароботает основная программа это можно будет легко прицепить.
Вот я Вам тут на память накропал.В SPLAN-е у меня нет микросхем на 28 ножек,так что извините.
#include ‹mega8.h›
interrupt [ANA_COMP] void ana_comp_isr(void)
{
PORTB.1=0 //обратно отключаем подачу напряжения
TCCR1B=0X0 //останавливаем счётчик
TCNT1=0 //сбрасываем счётчик в 0
UNSIGNED INT A=ICR1 //в переменную А помещаем значение захвата
}
void main(void)
{
DDRD.6=0
PORTD.6=0 //конфигурация выводов
DDRD.7=0 //аналогового компаратора
PORTD.7=0
DDRB.0=0 //конфигурация вывада ICP1
PORTB.0=0
DDRB.1=1 //конфигурация вывода подачи напряжения
PORTB1=0
ACSR=0B00001111
TIMSK=0B00100000
#asm("sei")
main:
WHILE(1)
{
кАКОЕ-ТО УСЛОВИЕ ЗАПУСКА{
TCCR1B=0X01 //запускаем таймер
PORTB.1=1 //подаём напряжение
WHILE(!ACSR.ACO){} //ждём пока напряжение на выводах
//уровняется,потом аппаратно в регистр ICR1 копируется значение захвата
//и происходит прерывание
}
}
-- Прилагается рисунок: --