[an error occurred while processing this directive]
Эта, ничего путёвого я не нашёл, но может это поможет:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено AlexD 09 октября 2002 г. 19:49
В ответ на: это не подходит т.к. во время работы этой ф-ции проц будет бесполезно простаивать, отправлено SergQ 09 октября 2002 г. 16:00







 cellpadding="0">


 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">}
}


href="http://tepexob.hypermart.net/pages/tss.html" target="_blank">Created with The Source Studio - EVALUATION version






Эжели чё непонятно - пиши...

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

Ответы



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

E-mail: info@telesys.ru