Создал тему для людей увлеченных программированием микроконтроллеров... И есле такие есть давайте создадим свой офтоп где будем обьщаться... И вот мой первый вопрос по этой теме.. Короче кто разбираеться с таймер/счетчик в микроконтроллерах avr просьба помочь открыть глаза на эту тему немогу разобраться... Вот к примеру надо зделать определенную задержку и несколько тактов тоесть все должно идти примерно 15 часов..Но такчтобы цикл while(1) бесконечный тоесть за это все время прошол всего одник раз.. Разработку введу на C в CodeVisionAvr вот тут мне и надо зделать..
Hi. Ну типа я немного юзаю МК, но я больше электронщик чем програмист. На какой AVRке таймеры надо раскопать и какие. Они там разные есть.
Он то археолог но темка всеже нужная.. Модеры - плиз перенесите её в Электронику - думаю ей там место =)
для начала надо знать частоту кварца - при 16MHz ATMega надо сделать так Code: // здесь пишем время в часах #define YOU_HOUR_VALUE 18 // расчетное значение будет 61,274509803921568627450980392157 прерываний в секунду =)) округляем до 61, без часового кварца точности не будет. #define TIMER_COUNTER 61 #define MAX_COUNTER TIMER_COUNTER*60*60*YOU_HOUR_VALUE int counter = 0; void timer0_interrupt(void) { counter++; if (counter > MAX_COUNTER) { counter = 0; _moya_funkcia_01(); } } void _moya_funkcia_01(void) { // your code here } void main(void) { TCCR0 = 0b00000101; // (16 000 000 / 1024) TCNT0 = 0x00; OCR0 = 0xFF; // ((16 000 000 / 1024) / 255) = 61 Hz TIMSK = 0b00000011; while(1) { // your code here } }; регистры могут быть неточно указаны, лень ща копать ДШ =)
Современные МК обладают не плохим набором переферии. Предлогаю расказать кто что интересного делает на МК. У меня, к примеру, есть дистанционное управление по GSM-телефону. Схема построена на AtMega48.