|
Таймер, Непонятно, как можно так писать? |
|
|
|
Jan 31 2007, 14:27
|
Группа: Новичок
Сообщений: 8
Регистрация: 31-01-07
Пользователь №: 24 905

|
Вот фрагмент кода
TimeLoop: out TCNT0, temp ;Сохраняем содержимое регистра таймера счетчика в temp cp temp, 80 ; Сравниваем это содержимое с 80 brne TimeLoop ; Если не равно, то возвращаемся к началу цикла
Вот мне непонятна одна вещь: каждая команда выполняется за один такт (какие-то команды могут выполняться за 2 такта). Один такт и в регистре таймера счетчика оказывается 1 (предполагается, что делитель частоты не используется). Следоваетльно в цикле описанном выше можно проскочить момент, когда в регистре таймера счетчика будет 80. Может, я что-то неправильно здесь понимаю? Конечно, по мне гораздо удобнее воспользоваться прерываниями.
|
|
|
|
|
 |
Ответов
|
Jan 31 2007, 23:49
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(smk @ Jan 31 2007, 21:03)  Все философское хорошо, но выучить ассеблер нужно. Только прога нужна работающая раньше чем ассеблер выучен будет. Вот кто сможет предложить ассемблерную вставку, обеспечивающую на ноге 4000 Гц при тактовой 128000 Гц и длительностью 0,25 с ???? Код ldi R21,$32 LABEL1: ldi R20,$06 nop LABEL2: sbi portB,1 subi R20,$01 brne LABEL2 ldi R20,$05 nop nop LABEL3: cbi portB,1 subi R20,$01 brne LABEL3 nop nop nop subi R21,$01 brne LABEL1 Дергаем на ноге portB.1 С Вас пиво.
|
|
|
|
|
Feb 1 2007, 18:55
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(bodja74 @ Jan 31 2007, 20:49)  Цитата(smk @ Jan 31 2007, 21:03)  Все философское хорошо, но выучить ассемблер нужно. Только прога нужна, работающая раньше, чем ассеблер выучен будет. Вот кто сможет предложить ассемблерную вставку, обеспечивающую на ноге 4000 Гц при тактовой 128000 Гц и длительностью 0,25 с ????
Код ldi R21,$32 LABEL1: ldi R20,$06 nop LABEL2: sbi portB,1 subi R20,$01 brne LABEL2 ldi R20,$05 nop nop LABEL3: cbi portB,1 subi R20,$01 brne LABEL3 nop nop nop subi R21,$01 brne LABEL1 Дергаем на ноге portB.1 С Вас пиво. Влезу чуток. Кроме того, что у вас длительность единицы составляет 34 такта вместо 16, а длительность нуля - 27 вместо 16, там еще требуется обеспечить 1000 циклов, а не 50, так что это с вас поллитра пива, каждому, кто читал эту ветку(:-).
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
Сообщений в этой теме
T&D Таймер Jan 31 2007, 14:27 Wild007 ЦитатаНепонятно, как можно так писать?
А ... Jan 31 2007, 14:39 prottoss Цитата(T&D @ Jan 31 2007, 18:27) out ... Jan 31 2007, 14:40 T&D Цитата(prottoss @ Jan 31 2007, 14:40) Цит... Jan 31 2007, 14:52 Wild007 ЦитатаЕсть вероятность, что мы при таком написании... Jan 31 2007, 15:06 add Да...уф.. Задача собственно несовсем понятна, даже... Jan 31 2007, 15:10 T&D Цитата(add @ Jan 31 2007, 15:10) Да...уф.... Jan 31 2007, 15:23 add ЦитатаЭтот пример не мной придуман, он взят из кни... Jan 31 2007, 15:27 T&D Цитата(add @ Jan 31 2007, 15:27) ЦитатаЭт... Jan 31 2007, 15:36 Wild007 Может автор
ЦитатаМортона "Микроконтроллеры A... Jan 31 2007, 15:36 SpiritDance Ржал. Опуфуительная книжка должно быть. Навроде ка... Jan 31 2007, 15:41 defunct Цитата(SpiritDance @ Jan 31 2007, 14:41) ... Jan 31 2007, 15:55 add ЦитатаВсе остальные строчки полностью переписаны и... Jan 31 2007, 15:49 IgorKossak Цитата(add @ Jan 31 2007, 14:49) ЦитатаВс... Jan 31 2007, 16:45 Wild007 ЦитатаPS остерегайтесь вводных курсов, читайте сер... Jan 31 2007, 16:57 zltigo Цитата(Wild007 @ Jan 31 2007, 15:57) пото... Jan 31 2007, 18:59 singlskv Цитата(smk @ Jan 31 2007, 21:03) Все фило... Feb 1 2007, 01:39 SasaVitebsk Цитата(T&D @ Jan 31 2007, 15:27) Вот ... Feb 1 2007, 00:08 bodja74 Если цикл сравнения проходит быстрее клока таймера... Feb 1 2007, 00:41 add Цитатато можно переписать след. образом
Уважаемый ... Feb 1 2007, 09:51 SasaVitebsk Цитата(add @ Feb 1 2007, 10:51) Цитатато ... Feb 1 2007, 13:54 bodja74 Цитата(add @ Feb 1 2007, 09:51) Цитатаbod... Feb 1 2007, 15:50  T&D Цитата(bodja74 @ Feb 1 2007, 15:50) Обьяс... Feb 1 2007, 16:12   defunct Цитата(T&D @ Feb 1 2007, 15:12) А есл... Feb 1 2007, 17:17  IgorKossak Цитата(bodja74 @ Feb 1 2007, 14:50) Обьяс... Feb 1 2007, 16:39   bodja74 Цитата(IgorKossak @ Feb 1 2007, 16:39) Кт... Feb 1 2007, 20:23    =GM= Цитата(bodja74 @ Feb 1 2007, 17:23) 2GM
... Feb 1 2007, 20:52     bodja74 Цитата(=GM= @ Feb 1 2007, 20:52) Как вы с... Feb 1 2007, 21:44      =GM= Цитата(bodja74 @ Feb 1 2007, 18:44) Цитат... Feb 1 2007, 23:38 T&D Спасибо за ответы. Можно ещё один вопрос задать? В... Feb 1 2007, 12:53 Сергей Борщ Цитата(T&D @ Feb 1 2007, 11:53) Я пра... Feb 1 2007, 13:06  T&D Цитата(Сергей Борщ @ Feb 1 2007, 13:06) А... Feb 1 2007, 13:32   Сергей Борщ Цитата(T&D @ Feb 1 2007, 12:32) Миган... Feb 1 2007, 16:00 add Собственно фрагмент книги, из-за которого создана ... Feb 2 2007, 10:13 Wild007 Цитата(add @ Feb 2 2007, 09:13) Собственн... Feb 2 2007, 10:17
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|