Свежие обсуждения
Микроконтроллеры

Что может быть в программе не так?

1 2

Странное дело. Посмотрел свое предыдущее сообщение: куда-то исчезли уголки (сдвиг).
Отредактировал. Сохранил. Опять нету. Поставил пробел между уголками - сохранился только один уголок. Поставил два пробела -появились. Какой-то глюк форума. Надо Andy спросить.

 

Digital: Попробовал другой вариант (cv_2.txt). Ерунда какая-то. Если посмотреть на "железные" выходы таймеров, то там меандр чёткий, а в прерываниях этих таймеров (хоть по сравнению, хоть по переполнению) стоит всего по одной простенькой команде на инверсию состояния порта, а получается не меандр, а непонятно что. Что за "щет", где грабли? Запарился уже TCNT даже не трогаю ведь.

Грабли у вас в программе. Установили таймеры в pwm phase mode, а требуете от них режима СТС.

 

GM: Установили таймеры в pwm phase mode
Всё таки в программе дело значит По поведению в симуляторе на ШИМ смахивает конечно, но на обоих скриншотах видно, что режим у таймеров No PWM, да и мастеру cvavr такого не заказывал. Ещё раз код из cv_2.txt скомпилировал - симулятор говорит, что режимы таймеров No PWM. Может у меня проги врать стали с чего вдруг, надо по ДШ режимы уточнить будет.

 

Да не, режимы таймеров 0(2) были TCCRn=0x19, т.е. 00011001. По ДШ на мегу16, например для таймера 0 (стр.83) режим СТС включается при WGM01==1 и WGM00==0 - биты 3 и 6 регистра TCCRn соответственно (счёт с bit0). Корректный ШИМ включается при WGM01==0 и WGM00==1, т.е. при TCCRn=01010 001(clk==sys_clk).

 
1 2