Например TDA7294

Форум РадиоКот • Просмотр темы - ATmega16A: некорректно работает ШИМ
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 12:04:12

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 10 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Ср июл 04, 2012 20:23:23 
Родился

Зарегистрирован: Ср июл 04, 2012 20:06:25
Сообщений: 6
Рейтинг сообщения: 0
Проблема вскрывается при "шагании" по коду в дебаггере (используется AVRStudio 4)
При настройке Таймера1(16-ти битный), я первоначально задаю значения в регистрах OCR1AH/L и OCR1BH/L, потом произвожу настройку Таймера1 на нужный мне режим работы
Трабл таков: если шагать по коду, то после строчек настройки регистров TCCR1A/B, старшие байты регистров OCR1A/B почему-то самопроизвольно меняются на совсем другие значения. Младшие байты не меняются.
Почему так происходит понять ни как не могу.
Хотя, если ткнуть осциллографом в ногу, куда выводится ШИМ, то там он будет иметь правильную форму, заданную регистрами OCR1A/B (правильность проверял также по получаемому периоду меандра)
Чтобы убедится, что это не глюк программы состряпал прерывание, в котором, по нажатию кнопки, сначала данные с регистров OCR1AH/L и OCR1BH/L копируются во временные регистры, а потом сразу же обратный процесс - из временных регистров в регистры сравнения.
Тут-то бага и вскрывается, т.к. старшие байты самопроизвольно поменялить так, что предел счёта стал меньше сравниваемого значения, ни о каком ШИМ речи не идёт (что осциллограф и подтверждает).

Посему и вопрос к светилам: в чём моя ошибка и как сделать так, чтобы старшие байты регистров сравнения не менялись?


Вложения:
FastPWM with TOP-OCR1A.asm [1.72 KiB]
Скачиваний: 446
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Чт июл 05, 2012 07:07:43 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Код:
t0_comp:

sbic pinD,1            
rjmp exit
in temp1,OCR1BH
in temp2,OCR1BL

out OCR1BL,temp2
out OCR1BH,temp1

exit:

согласно ДШ при записи первым пишется ст.байт, затем мл.
при чтении - сначало читается мл.байт, затем ст.байт
а у тебя все наоборот

а при инициализации все правильно:
сначала ст. потом мл.

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Чт июл 05, 2012 10:20:45 
Родился

Зарегистрирован: Ср июл 04, 2012 20:06:25
Сообщений: 6
Рейтинг сообщения: 0
Замечание верное, но сути дела не меняет - всё равно старшие байты меняются и поэтому, в прерывании t0_comp, во временные регистры записываются неверные значения


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Чт июл 05, 2012 12:19:07 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 74
Зарегистрирован: Пн июн 18, 2012 12:01:04
Сообщений: 650
Откуда: Челябинская область, Копейск
Рейтинг сообщения: 0
Нужно в обработчике прерываний сохранять регистры и флаги в стеке, а при выходе восстанавливать, а иначе концов не найдешь.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Чт июл 05, 2012 12:48:57 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 234
Зарегистрирован: Пт янв 29, 2010 10:27:40
Сообщений: 3851
Откуда: Москва
Рейтинг сообщения: 0
zero648 писал(а):
Нужно в обработчике прерываний сохранять регистры и флаги в стеке, а при выходе восстанавливать, а иначе концов не найдешь.

По хорошему да, но тут вся программа - инициализация и пара обработчиков прерывания, так что это не влияет.
Это явный глюк симулятора студии, поиграйтесь во время пошаговой отладки с битами WGM10-WGM13 и OCR и сравните результат с таблицей в даташите. Создается впечатление что WGM13 и 12 вообще не влияют на режим, остаются 8,9 и 10 битные режимы, в которых старшие 7-9 бит регистров сравнения просто обнуляются. Кстати в протеусе этого не происходит, в железе проверить не могу, 16я мега осталась на даче...


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Чт июл 05, 2012 13:05:04 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14054
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
сколько раз уже эти "грабли" повторяются...!
Читайте описание ограничений в работе дебаггера AVRstudio!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Чт июл 05, 2012 13:25:58 
Родился

Зарегистрирован: Ср июл 04, 2012 20:06:25
Сообщений: 6
Рейтинг сообщения: 0
Engineer_Keen писал(а):
Создается впечатление что WGM13 и 12 вообще не влияют на режим, остаются 8,9 и 10 битные режимы, в которых старшие 7-9 бит регистров сравнения просто обнуляются.

Согласен, действительно похоже на это, но, правда, отчего же?

Engineer_Keen писал(а):
Кстати в протеусе этого не происходит, в железе проверить не могу, 16я мега осталась на даче...

Чего именно не происходит в протеусе?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Чт июл 05, 2012 13:35:14 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 234
Зарегистрирован: Пт янв 29, 2010 10:27:40
Сообщений: 3851
Откуда: Москва
Рейтинг сообщения: 0
KaCD писал(а):
Согласен, действительно похоже на это, но, правда, отчего же?

Написали уже - глюк симулятора, смиритесь с этим :)))
Engineer_Keen писал(а):
Чего именно не происходит в протеусе?

Не обнуляются старшие биты в OCR. Хотя они там не обнуляются если и действительно 8-10 битные режимы ставить... Как должно быть на самом деле не знаю, никогда такие режимы (менее 16 бит для 16 разрядного таймера) не использовал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Чт июл 05, 2012 13:44:03 
Родился

Зарегистрирован: Ср июл 04, 2012 20:06:25
Сообщений: 6
Рейтинг сообщения: 0
Engineer_Keen писал(а):
KaCD писал(а):
Согласен, действительно похоже на это, но, правда, отчего же?

Написали уже - глюк симулятора, смиритесь с этим :)))

Пичаль... видимо придётся попробовать другой софт или другую версию того же АВРСтудио...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega16A: некорректно работает ШИМ
СообщениеДобавлено: Чт июл 05, 2012 21:34:50 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14054
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
у аврчатых симуляторов (и у симуляторов в большинстве) отлично проработано только "ядро", а чего касательно всяческой периферии и особенно "сложных" режимов - всегда будут различной степени ограничения... :cry:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y