Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Михаил Е. 22 декабря 2004 г. 16:00
В ответ на: Сделать класс таймер, например... отправлено PILOTIK 22 декабря 2004 г. 15:41



//***************************************************
//* Таймер 3. *
//* Системные метки времени *
//***************************************************
class Timer3: public Baseclass
{
public:
Timer3();
private:
//*************** Прерывание 1 мсек. ****************
#pragma vector=TIMER3_COMPA_vect
static __interrupt void timer3compa() // прерывания 1 мсек.
{
static unsigned int time; // подсчет времени 1 сек.
if(++time<1000) SendEvent(Time_1ms); // событие 1 мсек
else { time = 0; SendEvent(Time_1s); } // событие 1 сек.
PORTD ^= 0x80;
}
};
//************** Конструктор ************************
Timer3::Timer3()
{
WGM30 = WGM31 = WGM33 = 0; WGM32 = 1; // режим сравнения
OCR3A = 16000; // 1 мсек.
CS3 = 1; // запустить счет со скоростью CLK
OCIE3A = 1; // разрешить прерывания по совпадению А
__enable_interrupt(); // разрешить прерывания
}
//***************** Создаем объект ******************
Timer3 timer3;




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

Ответы



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

E-mail: info@telesys.ru