| AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
Atmega162 Timer1 и Timer3 работаю по разному
02.07.2014, 14:43
|
|
|
Частый гость
Регистрация: 17.06.2014
Сообщений: 30
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
Сообщение от vynt
|
Таки так можно сказать о любом глюке в программе 
А макрос как раз "^=" и делает. Судя по другим вопросам/темам автора частота 8Мгц.
А про меандр, без комментариев...
мой код
его код
|
Факт, счетчик протеуса видит этот "наносекундный" скачек, я же не пытался получить красивые узоры, а проверял Timer...
|
|
|
|
02.07.2014, 15:06
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
Сообщение от qweentet
|
|
Вот вроде бы толковые вещи пишите, там меандры, видит, не видит... Я иду по простейшему пути, ( сначала я писал макрос, в котором пин менял уровень 1 раз за прерывание, т.е. произошло прерывание, выставили 1, в следующий раз наоборот, потом множил на 2), попробовал так ,как описано в теме выше, и Timer1 показал нужную частоту, и меандр был виден, несмотря на микро продолжительность,а вот 3-тий таймер работает отлично от первого, т.е. средство проверки,я думаю ту т не причем. Завтра приедет реальный МК, залью и погляжу результат, как получу, отпишусь...
|
Ваши таймеры работают скорее всего правильно, т.е. с одной частотой. Ошибка в обработчике, где Вы это проверяете. От замены на реальный камень ничего не измениться. Ваш код инверсии пина не правильный. Первый таймер затирает то что выставляет в порт третий, и наоборот. Если применение макросов неприемлемо (почему?..), сделайте альтернативно
|
PHP код:
|
PINB|=0x01;//в первом таймере
PINB|=0x02;//в третьем
|
или
|
PHP код:
|
PORTB^=0x01;//в первом таймере
PORTB^=0x02;//в третьем
|
Последний раз редактировалось vynt; 02.07.2014 в 15:16.
|
|
|
|
02.07.2014, 15:10
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
Сообщение от qweentet
|
|
Факт, счетчик протеуса видит этот "наносекундный" скачек, я же не пытался получить красивые узоры, а проверял Timer...
|
Скачки это не меандр, это скачки
|
|
|
|
02.07.2014, 15:52
|
|
|
Гражданин KAZUS.RUN
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
Сообщение от vynt
|
|
PHP код:
|
PINB|=0x01;//в первом таймере
PINB|=0x02;//в третьем
|
|
Тоже не самый правильный вариант.
|
Код:
|
PINB=0x01;//в первом таймере
PINB=0x02;//в третьем |
|
|
|
|
02.07.2014, 15:53
|
|
|
Частый гость
Регистрация: 17.06.2014
Сообщений: 30
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
Сообщение от vynt
|
Ваши таймеры работают скорее всего правильно, т.е. с одной частотой. Ошибка в обработчике, где Вы это проверяете. От замены на реальный камень ничего не измениться. Ваш код инверсии пина не правильный. Первый таймер затирает то что выставляет в порт третий, и наоборот. Если применение макросов неприемлемо (почему?..), сделайте альтернативно
|
PHP код:
|
PINB|=0x01;//в первом таймере
PINB|=0x02;//в третьем
|
или
|
PHP код:
|
PORTB^=0x01;//в первом таймере
PORTB^=0x02;//в третьем
|
|
Да, спасибо, все красиво, меандр рисует, проблема на месте, Timer3 в 2-ва раза быстрее
|
|
|
|
02.07.2014, 16:22
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
Прект в студию!..
Где-то значит значение TCNT3 или OCR3A изменяется в два раза. Вероятнее всего лишний сдвиг ‹‹
или опечатка
|
|
|
|
02.07.2014, 16:33
|
|
|
Частый гость
Регистрация: 17.06.2014
Сообщений: 30
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
Загрузил в AVRStudio V4 *.cof файл проекта, таймеры отрабатывают одинаково, как я и планировал!
|
|
|
|
02.07.2014, 16:37
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
Сообщение от qweentet
|
|
Загрузил в AVRStudio V4 *.cof файл проекта, таймеры отрабатывают одинаково, как я и планировал!
|
А тогда протеус какой версии и где взяли (чтобы там не брать)?
|
|
|
|
02.07.2014, 16:45
|
|
|
Частый гость
Регистрация: 17.06.2014
Сообщений: 30
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
Сообщение от vynt
|
|
А тогда протеус какой версии и где взяли (чтобы там не брать)?
|
В обоих одинаково, брал на ru****ker.org
|
|
|
|
02.07.2014, 16:51
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
|
Re: Atmega162 Timer1 и Timer3 работаю по разному
И у меня 7.1sp0 (но зарегина на другое имя, и не предлагает купить). Где брал уже не помню, не один год уже прошёл. Таких глюков не разу не наблюдал 
з.ы.
вспомнил, что не разу cof туда не грузил, сразу hex
может потому и без глюков всё пока
Последний раз редактировалось vynt; 02.07.2014 в 16:56.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:40.
|
|