реклама на сайте
подробности

 
 
> Насчитать 60сек с помощью 16-ричного таймера, никак не выходит
password
сообщение Sep 11 2010, 06:37
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 15-07-10
Пользователь №: 58 458



Все подсчеты приведены на вскидку, главное помогите подправить код!
Частота кварца - 4МГц.
Делитель по таймеру - 1024 (~4кГц)
То есть для подсчета 60сек необходимо насчитать таймером 240 000 (=4кГц*60), но т.к. таймер считает до 65535, то будем считать до 24000 10 раз (в моем случае до 23808).
Код
    ldi       marker,93          ; задали начально значение маркера
    ldi       counter,10        ; начальное значение счетчика
    clr        temp            ;
    sts        TCNT1H,temp        ; обнуляем таймер
    sts        TCNT1L,temp        ; обнуляем таймер
    start1:
    lds        temp,TCNT1H        ; загружаем содержимое таймера
    cp        temp,marker        ; таймер насчитал 23808?
    brne      start1         ; если нет, то остаемся в цикле
    subi      marker,-105        ; входим на след. круг подсчета
    dec      counter           ; уменьшаем счетчик на 1
    cpi       counter,0          ; досчитали до 60сек?
    brne      start1         ; если нет, то остаемся в цикле
Но в AVR Studio счетчик переваливает за 3мин и не останавливается (ждал правда несколько часов))
Где ошибка? Заранее благодарю.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016