Схемы, программы, прошивки Микроконтроллер'щики обьединяйтесь!!!

Discussion in 'Электроника и Фрикинг' started by grinay, 16 Sep 2005.

  1. grinay

    grinay IQ- 137%

    Joined:
    15 Jun 2004
    Messages:
    409
    Likes Received:
    174
    Reputations:
    305
    Создал тему для людей увлеченных программированием микроконтроллеров...
    И есле такие есть давайте создадим свой офтоп где будем обьщаться...
    И вот мой первый вопрос по этой теме..
    Короче кто разбираеться с таймер/счетчик в микроконтроллерах avr просьба помочь открыть глаза на эту тему немогу разобраться...
    Вот к примеру надо зделать определенную задержку и несколько тактов тоесть все должно идти примерно 15 часов..Но такчтобы цикл while(1) бесконечный тоесть за это все время прошол всего одник раз..
    Разработку введу на C в CodeVisionAvr вот тут мне и надо зделать..
     
    #1 grinay, 16 Sep 2005
    Last edited: 16 Sep 2005
  2. Morse

    Morse New Member

    Joined:
    24 Aug 2009
    Messages:
    4
    Likes Received:
    2
    Reputations:
    0
    Hi. Ну типа я немного юзаю МК, но я больше электронщик чем програмист. На какой AVRке таймеры надо раскопать и какие. Они там разные есть.
     
    1 person likes this.
  3. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    ты археолог.... 2005 год однако
     
  4. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Он то археолог но темка всеже нужная..

    Модеры - плиз перенесите её в Электронику - думаю ей там место =)
     
    1 person likes this.
  5. kot_polosatik

    kot_polosatik New Member

    Joined:
    25 Aug 2009
    Messages:
    8
    Likes Received:
    1
    Reputations:
    0
    для начала надо знать частоту кварца - при 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
      }
    };
    
    
    регистры могут быть неточно указаны, лень ща копать ДШ =)
     
  6. Morse

    Morse New Member

    Joined:
    24 Aug 2009
    Messages:
    4
    Likes Received:
    2
    Reputations:
    0
    Современные МК обладают не плохим набором переферии. Предлогаю расказать кто что интересного делает на МК. У меня, к примеру, есть дистанционное управление по GSM-телефону. Схема построена на AtMega48.
     
    1 person likes this.
  7. ghostwizard

    ghostwizard Member

    Joined:
    4 Dec 2005
    Messages:
    127
    Likes Received:
    36
    Reputations:
    21
    Интересно. Выложишь схемку с описанием?
     
  8. Morse

    Morse New Member

    Joined:
    24 Aug 2009
    Messages:
    4
    Likes Received:
    2
    Reputations:
    0
    ок. разгребусь с делами, сделаю новую тему.