Маленький пример для AVR
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 24 сентября 2004 г. 20:44
В ответ на: тогда у меня не хватает знаний,бу рад, если кто поможет отправлено nestandart 24 сентября 2004 г. 17:05


//
// *** External interrupt handlers ***
//
// INT0 interrupts come from the mains cross-zero sensor
// The handler calculates the flash period and initiates the flash by TIMER0 interrupts.
//

#pragma vector = INT0_vect
__interrupt void INT0_handler(void)
{
PORTB &= ~(1<<6);
if (Counter==0 || ++_TmpCounter return;
_TmpCounter = 0; // Reload frequency counter
Flags &= ~NEW_BIT; // Reset the flag
TCNT0 = 256-100; // Set Timer0 (~ 10mS delay)
TIMSK |= (1< TCCR0 = 0x05; // Run Timer0 (CK / 1024 = 128uS)
PORTB |= (1<<6);
}


Содержание самой процедуры обработки прерывания Вам мало что скажет. Могу только пояснить, что прерывание выдается оптроном, фиксирующим момент перехода сетевого напряжения через нуль.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru