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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Таймер, Непонятно, как можно так писать?
defunct
сообщение Feb 1 2007, 17:17
Сообщение #31


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(T&D @ Feb 1 2007, 15:12) *
А если делитель частоты не используется? То клок таймера=такту проца, следовательно здесь есть вероятность проскочить значение.

Здесь нужно уже не вероятность "проскочить" считать, а вероятность срабатывания, которая будет значительно ниже 0.5.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Feb 1 2007, 18:55
Сообщение #32


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, так что это с вас поллитра пива, каждому, кто читал эту ветку(:-).


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
bodja74
сообщение Feb 1 2007, 20:23
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(IgorKossak @ Feb 1 2007, 16:39) *
Кто-то говорил, что при исполнении этого цикла прерывания запрещены?
Если нет, то вероятность проскочить далеко не нулевая.

И про сторожевой таймер тоже никто не говорил.

2GM

Здесь 0 и 1 ровно 32 такта ,за остальное пардон,пока считать не научился ,вечно блох ловлю smile.gifsmile.gifsmile.gif
Go to the top of the page
 
+Quote Post
=GM=
сообщение Feb 1 2007, 20:52
Сообщение #34


Ambidexter
*****

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



Цитата(bodja74 @ Feb 1 2007, 17:23) *
2GM

Здесь 0 и 1 ровно 32 такта ,за остальное пардон,пока считать не научился ,вечно блох ловлю smile.gifsmile.gifsmile.gif

Как вы считаете такты? Надеюсь, вы согласны. что единица начнётся после строчки LABEL2: sbi portB,1
Длительность цикла 3+4+4+4+4+3=30 плюс 4 команды
ldi R20,$05
nop
nop
LABEL3: cbi portB,1
Здесь начнётся нуль. Всего будет 34 такта. Также и с нулём можно посчитать.

На самом деле, надо 16 тактов для 1 и 16 тактов для 0, поскольку период клока равен 7,8125 мкс (128 кГц клок), а период у сигнала с частотой 4000 Гц равен 250 мкс. Т.е. 250/7,8125=32 такта на период, по 16 тактов на 1 и 0 соответственно.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
bodja74
сообщение Feb 1 2007, 21:44
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(=GM= @ Feb 1 2007, 20:52) *
Как вы считаете такты? Надеюсь, вы согласны. что единица начнётся после строчки LABEL2: sbi portB,1
Длительность цикла 3+4+4+4+4+3=30 плюс 4 команды
ldi R20,$05
nop
nop
LABEL3: cbi portB,1
Здесь начнётся нуль. Всего будет 34 такта. Также и с нулём можно посчитать.

Ну что тут скажеш ,это конечно сильно smile.gif
особенно вот это.
Цитата
3+4+4+4+4+3=30

smile.gifsmile.gifsmile.gif

Делаем расклад

LABEL2: sbi portB,1 =2
subi R20,$01 =1
brne LABEL2 =2 (и =1 в конце) итого 5+5+5+5+5+4=29
ldi R20,$05 =1
nop =1
nop =1 итого 32
LABEL3: cbi portB,1

Далее немного сложнее ,так как нужно выполнить еще одно условие ,но в том же духе.


Цитата
На самом деле, надо 16 тактов для 1 и 16 тактов для 0, поскольку период клока равен 7,8125 мкс (128 кГц клок), а период у сигнала с частотой 4000 Гц равен 250 мкс. Т.е. 250/7,8125=32 такта на период, по 16 тактов на 1 и 0 соответственно.


Я уже это понял. sad.gif
Go to the top of the page
 
+Quote Post
=GM=
сообщение Feb 1 2007, 23:38
Сообщение #36


Ambidexter
*****

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



Цитата(bodja74 @ Feb 1 2007, 18:44) *
Цитата(=GM= @ Feb 1 2007, 20:52) *

Как вы считаете такты? Надеюсь, вы согласны. что единица начнётся после строчки LABEL2: sbi portB,1
Длительность цикла 3+4+4+4+4+3=22 плюс 4 команды
ldi R20,$05
nop
nop
LABEL3: cbi portB,1
Здесь начнётся нуль. Всего будет 27 тактов. Также и с нулём можно посчитать.

Ну что тут скажешь, это конечно сильно smile.gif
особенно вот это.
Цитата
3+4+4+4+4+3=30

smile.gifsmile.gifsmile.gif

Делаем расклад

LABEL2: sbi portB,1 =2
subi R20,$01 =1
brne LABEL2 =2 (и =1 в конце) итого 5+5+5+5+5+4=29
ldi R20,$05 =1
nop =1
nop =1 итого 32
LABEL3: cbi portB,1

Далее немного сложнее ,так как нужно выполнить еще одно условие ,но в том же духе.

Черт, прошу пардону, у меня табличка старенькая по командам отпечатана, так там sbi и cbi по одному такту(:-(. Ну а тут, 3+4+4+4+4+3=30, оправдаться нечем, рука пронесла (:-)!


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
add
сообщение Feb 2 2007, 10:13
Сообщение #37


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Собственно фрагмент книги, из-за которого создана тема.(Мортон Д. - Микроконтроллеры AVR. Вводный курс) см. вложен:
Прикрепленные файлы
Прикрепленный файл  ________.____________________AVR._____________.pdf ( 121.83 килобайт ) Кол-во скачиваний: 101
 


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
Wild007
сообщение Feb 2 2007, 10:17
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



Цитата(add @ Feb 2 2007, 09:13) *
Собственно фрагмент книги, из-за которого создана тема.(Мортон Д. - Микроконтроллеры AVR. Вводный курс) см. вложен:

Да забудте про эту "книгу", и сдайте ее на макулатуру!!! smile.gif smile.gif smile.gif
Чё не понятно, спрашивайте, поможем! cheers.gif


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post

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

 


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


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