style="background-color: rgb(221,235,255);">// коментарии стр. - ссылаются на .pdf на ATmega128 // #include color="#000000"><iom128 color="#000000">.h color="#000000">> #include color="#000000"><inavr color="#000000">.h color="#000000">> // // --------------------------------------------- Глобальная переменная - счётчик volatile color="#000080">unsigned color="#000080">int TimClock color="#000000">; // // ***************************************************************************** // // Объявление функции - обработчика прерывания от Таймера1 // #pragma vector color="#000000">=TIMER1_OVF_vect color="#008080">// cм. iom128.h, стр. 54 __interrupt color="#000080">void timer1 color="#000000">( color="#000080">void color="#000000">) color="#000000">{ color="#000000">++TimClock color="#000000">; } // // ***************************************************************************** // // ----------------------------------------------------- Инициализация Таймера 1 void Tim1Init color="#000000">( color="#000080">void color="#000000">) color="#000000">{ TCCR1B color="#000000">= color="#ff8000">1 color="#000000">; color="#008080">// тактирование от генератора, без делителя (стр. 130) TIMSK color="#000000">= color="#ff8000">1 color="#000000"><<TOIE1 color="#000000">; color="#008080">// разрешить прерывание по переполнению от таймера1 (стр. 134) } // --------------------------------------------- Аналог функции clock() unsigned long Clock color="#000000">( color="#000080">void color="#000000">) color="#000000">{ color="#000080">unsigned long tmp color="#000000">; color="#008080">// Запрещение прерываний __disable_interrupt color="#000000">(); color="#008080">// сложение текущего состояния таймера-счётчика(TCNT1) с программным счётчиком tmp color="#000000">= color="#000000">(( color="#000080">unsigned long color="#000000">)TimClock color="#000000"><< color="#ff8000">16 color="#000000">) color="#000000">| TCNT1 color="#000000">; color="#008080">// Разрешение прерываний __enable_interrupt color="#000000">(); color="#000080">return tmp color="#000000">; } // void main color="#000000">( color="#000080">void color="#000000">) color="#000000">{ // Tim1Init color="#000000">(); color="#008080">// Инициализация таймера __enable_interrupt color="#000000">(); color="#008080">// Разрешение прерываний // color="#000080">while color="#000000">( color="#ff8000">1 color="#000000">) color="#000000">{ color="#000000">; color="#008080">// bla-bla-bla... color="#000000">} }
|