На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Таймер на ATmega16 , Как с ним работать?
      Хочу научится работать с таймером 16й атмеги. Нигде не могу найти информацию как с ним работать, ДШ не взлетает, надо что то попрактичней, статейку какую нить. Помогите, пожалуйста, бедному студенту!
        Цитата COOLibin @
        Хочу научится работать с таймером 16й атмеги.

        Марку скажи по нормальному. ;)
        Цитата COOLibin @
        ДШ не взлетает

        Почему??? Как раз рулит. :wacko:
          Цитата
          Марку скажи по нормальному.

          ATmega16

          Цитата
          Почему??? Как раз рулит.

          Слишком заумно
            Цитата COOLibin @
            Хочу научится работать с таймером 16й атмеги

            А что сложного? Просто выставляешь делитель, отличный от нуля и он автоматом начинает считать. Так же не забывай про порядок чтения/записи мл. и ст. байтов (если ты использ. 16разрядный таймер и пишешь на асме). Можно так же включать прерывания по переполнению, по совпадению и пр. но тут не забудь глобально разрешить прерывания (sei). Так же есть ШИМы.. Но это уже потом, как разберешься с основами ;)
            Сообщение отредактировано: e-moe -
              Цитата e-moe @
              А что сложного? Просто выставляешь делитель, отличный от нуля и он автоматом начинает считать....

              свои пять копеек..
              при прошивки - выставить правильно фьюзы...если нужен делитель - то правильно выставить делитель тактовой...так же внешний, либо внутренний генератор...(многое зависит от проца, в 16 лень заглядывать - сорьки)...

              вообще то в даташите - самая правильная инфа...тем более атмел вроде редко косячит с доками...


              с уважением
              (круглый)
                Вот отрывок рабочего кода из реально работающего устройства на меге16. (компилятор avr-gcc):
                ExpandedWrap disabled
                  /* main.c:  инициализация */
                  /* 16 bit timer - master clock source counter */  
                     TCCR1B = 1 << CS10; /* full F_CPU clock */
                     TIMSK = 1 << TOIE1; /* intr. on overflow  */


                ExpandedWrap disabled
                  /* interrupt.S: обращение к регистрам таймера */  
                  .global SIG_INTERRUPT0
                  /* GPS 1 PPS service routine */
                  SIG_INTERRUPT0:                           ; 4   /* по внешнему прерыванию */
                      push   r16                                    ; 2      
                      in     r16, _SFR_IO_ADDR (TCNT1L)      ; 1  /* читаем младший байт счётчика таймера */
                      sbi    ADC_CTRL_PORT, AD_SCLK_BIT  ; 2 /* запускаем начало работы внешнего АЦП */
                    
                      sts    clock_cnt + 5, r16             ; 2   /* сохраняем младший байт в память */
                      in     r16, _SFR_IO_ADDR (TCNT1H)   ; 1   /* читаем старший байт счётчика */
                      sts    clock_cnt + 4, r16             ; 2  /*  сохраняем в память */  
                     ; ....
                      reti
                  antigen, и почему все еще используют старый синтаксис описания векторов?
                    ExpandedWrap disabled
                      $avr-gcc --version
                      avr-gcc (GCC) 3.4.6
                      Copyright (C) 2006 Free Software Foundation, Inc.
                      This is free software; see the source for copying conditions.  There is NO
                      warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
                      и? не понял намека..
                        От версии к версии соглашения о именовании обработчиков меняются. Чо уж тут непонятного. В свежих версиях avr-gcc они иначе называется. Хотя это даже скорее относится не к версии avr-gcc, а к avr-libc.
                        А уж к текущей теме про таймеры почти никак не относится.
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0299 ]   [ 15 queries used ]   [ Generated: 27.04.24, 22:17 GMT ]