Поклонники продукции Microchip Technology Inc тусуются тут.
Пт окт 12, 2012 00:12:11
Здравствуйте!
Помогите с написанием одноканального ШИМ на 12f509. Сколько искал в интернете - очень мало. Можно ли написать для него программный шим?
Увы, есть только этот процессор...
Очень хотелось бы увидеть алгоритм формирования, думаю с кодом я справлюсь. Как именно формируется, например, 80% заполнения?
Сколько перечитал - не понимаю. Пишут как правило, для RGB светодиодов.
Плавное загорание и потухание. А как заставить его дискретно менять процент заполнения?
Как я понимаю, используется прерывание по таймеру, и скорее всего счётчик ещё один нужен, в который и заливается значение заполнения ШИМ.
Очень прошу "C" и и прочие языки не использовать, я их почти не знаю, в универе чуть ассемблер давали. Так что из программ делал только динамическую индикацию на 16f84А:)
Буду очень благодарен за разъяснения и куски кода. Надеюсь на вашу помощь.
Пт окт 12, 2012 07:24:41
"Можно ли написать для него программный шим?"
Можно.
Почитай, что такое ШИМ вообще и по какому алгоритму этот процесс выполняется (в приложении аналоговых устройств) и сочини подобие для МК...
Пт окт 12, 2012 07:50:10
а чем обусловлен выбор именно этого чипа ? насколько мне не изменяет склероз -там отсутствие прерываний и 1 8 битный таймер - все это не особенно вдохновляет... и как этим шимом управлять...
Пт окт 12, 2012 07:54:11
Для организации ШИМ необходимо два таймера. Один генерирует одинаковые промежутки времени (допустим формирует начало импульса), второй, в зависимости от заполнения, формирует конец импульса.
В 509 один таймер TMR0 - его используем для формирования конца импульса, а еще один таймер делаем программно. В программе проверяем процент заполнения, если он больше нуля, устанавливаем единицу на выходе одного из портов и заносим в регистр таймерa TMR0 нужный коэф. ТМR0 инкриментируясь сгенерирует прерывание. В прерывании устонавливаем лог 0 на выходе порта и выходим из прерывания. Цикл повторяется.
Вот и весь алгоритм.
См. тоже на форуме другом.
Пт окт 12, 2012 08:09:18
у 509 нет прерываний, если чо.
Пт окт 12, 2012 08:34:45
Значит просто проверяем флаг переполнения таймера
Пт окт 12, 2012 09:54:59
Так и флага переполнения таймера там нет
мой вопрос состоял в том, зачем применять это камень ....
Пт окт 12, 2012 10:03:40
Это да, была бы возможность взял бы с аппаратным ШИМом. Но не найти у нас другого. А то что есть, стоит дорого. Есть 16F84, но жалко его для одноканального ШИМа,жаба душит. Хотя подскажите, может знаете 8-ми выводной PIC с аппаратным ШИМ?
Пт окт 12, 2012 10:28:30
микрочип знает
Выдало для 8 биток 7 результатов
http://www.microchip.com/maps/microcontroller.aspxНу там действительно аппаратный не так нужен, достаточно таймеров с прерыванием.
Наиболее распространенные из 8 ножек 12f675 629
Пт окт 12, 2012 10:37:58
Вот чёрт... Ну раз такому новичку, как я на этом МК не написать ШИМ, придётся 12F675 искать.
Пт окт 12, 2012 12:40:29
urry писал(а):Так и флага переполнения таймера там нет
Точно нет. Это все долбаные опечатки в переведенных даташитах )))
Пт окт 12, 2012 15:39:28
на 509-м спокойненько программный ШИМ сообразится и без всяких аппаратных примочек
А с аппаратным - pic12f683 в лапы
(Инет какой-то пакостный, все "повиснуть"пытается
)
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.