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

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

Отправлено AlexD 09 октября 2002 г. 19:51
В ответ на: Эта, ничего путёвого я не нашёл, но может это поможет: отправлено AlexD 09 октября 2002 г. 19:49

FILE: C:\Document\AVR\Projects\tmp.c

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


Created with The Source Studio - EVALUATION version

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

Ответы



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

E-mail: info@telesys.ru