// global variablesstatic volatile unsigned long int tick0 = 0;//каждую миллисекунду
//Обработчик прерывания по переполнению таймера 0.
//Обрабатывается каждые 1.00694мс(кварц 7.3728Мгц,
//прескалер CK/64, начальный отсчет с 140dec)
#pragma vector=TIMER0_OVF0_vect
__interrupt void TIMER0_OVF0_interrupt( void )
{
TCNT0 = 0x8C; // Таймер проиницилизирован(256-116=140=0x8C)
tick0++;
}
void main(void)
{
_CLI(); //Запрещаем сначала все прерывания
// Инициализация портов
PORTA = iniPORTA;
DDRA = iniDDRA;
PORTB = iniPORTB;
DDRB = iniDDRB;
PORTC = iniPORTC;
DDRC = iniDDRC;
PORTD = iniPORTD;
DDRD = iniDDRD;
//Отключаем питание от аналогового компаратора, чтобы не потреблял
ACSR|=(1<
TIFR = 0xFF; // Сброс всех флагов прерываний от таймеров // Инициализация таймера 0 на 1,00694 мс
TCCR0 = 0x00; // Таймер остановлен
TCNT0 = 0x8C; // Таймер проинициализирован(256-116=140=0x8C)
TIMSK|=(1< TCCR0 = 0x03; //Запускаем таймер 0 с предделителем
// CK/64 =8,6805555(5)мкс//.........
)//End main
Составить ответ
|||
Конференция
|||
Архив
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание