PWM в 16F1503
|
|
throgvar |
Дата: Пт, 05.10.2012, 14:45 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 14.09.2012
Статус:
Offline
|
Привет всем, принимайте новенького! Опыт работы с PIC имею, но раньше программировал на асме и PIC Simulator IDE, и младшие ПИКи (F84, F628, F676). Сейчас потребовалось сделать конструкцию на 16F1503 c использованием PWM. Пишу простейшую программу в Протоне (для изучения самого ПИКа) - не работает, светодиод на выходе PWM не светится! В чем ошибка?
Device = 16F1503 Declare Xtal = 4 Config1 CLKOUTEN_OFF , BOREN_OFF , CP_OFF , MCLRE_OFF , PWRTE_ON , WDTE_OFF , FOSC_INTOSC Config2 LVP_ON , LPBOR_OFF , BORV_LO , STVREN_ON , WRT_OFF OSCCON = %01101000 ANSELA = 0 ANSELC = 0 T2CON = %00000100 PWM1CON = %11100000 PWM2CON = %11100000 PWM3CON = %11100000 PWM4CON = %11100000 loop1: HPWM 1, 0, 2000 DelayMS 100 HPWM 1, 128, 2000 DelayMS 100 HPWM 1, 255, 2000 DelayMS 100 HPWM 1, 512, 2000 DelayMS 100 HPWM 1, 1023, 2000 DelayMS 100 GoTo loop1 End
|
|
|
|
Matrix252005 |
Дата: Пт, 05.10.2012, 15:40 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
throgvar, добро пожаловать!!!
А какая у Вас версия протона??? Ибо, моя версия (3527) не поддерживает эти МК!!!
Заодно гляньте это: http://www.terrarus.ucoz.ru/proton_plus_ide/index.html
HPWM: http://www.terrarus.ucoz.ru/proton_....wm.htmlДобавлено (05.10.2012, 15:40) --------------------------------------------- А где у Вас настройка самих портов??? Где видно, что они настроены на вход или на выход???
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
throgvar |
Дата: Пт, 05.10.2012, 15:40 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 14.09.2012
Статус:
Offline
|
Почему не поддерживает? Компилятор не ругается, .def файл для 16F1503 есть, .asm и .hex создаются... Loader version 3.5.2.7, Compiler version 3.5.3.4, IDE version 2.0.1.2
Ссылки эти я читал, не помогло...
Настройку сделал, TRISA = 0, TRISC = 0 - тоже не помогает...
Сообщение отредактировал
throgvar - Пт, 05.10.2012, 15:43
|
|
|
|
Matrix252005 |
Дата: Пт, 05.10.2012, 15:46 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
У меня более старая версия...
У меня, Loader version 3.5.2.7, Compiler version 3.5.2.7, IDE version 2.0.1.0Добавлено (05.10.2012, 15:46) --------------------------------------------- throgvar, видно Вы не внимательно читали!!!
HPWM Channel , Dutycycle , Frequency
Dutycycle - переменная, константа которые могут принимать значения в дипазоне чисел от 0 до 255. Почему она у Вас больше 255???
Попробуйте добавить: TRISC = %00000000
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
throgvar |
Дата: Пт, 05.10.2012, 16:07 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 14.09.2012
Статус:
Offline
|
Quote (Matrix252005) HPWM Channel , Dutycycle , Frequency
Dutycycle - переменная, константа которые могут принимать значения в дипазоне чисел от 0 до 255. Почему она у Вас больше 255??? Каюсь, невнимательно... Изменил, и TRISC поправил - никакого эффекта. Такое впечатление, что порт находтся в состоянии ввода...
|
|
|
|
Matrix252005 |
Дата: Пт, 05.10.2012, 16:12 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Проверить не могу, так что, попробуйте так:
Device = 16F1503 Declare Xtal = 4 Declare ALL_DIGITAL = On TRISC = $00 PortC = $00 loop1:
Дальше по тексту...
Еще, чтобы проверить, можно добавить светик... Дописав:
Dim Led as PortC.0 .... loop1: high led HPWM 1, 0, 2000 DelayMS 200 Low led HPWM 1, 64, 2000 DelayMS 200 ...
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
throgvar |
Дата: Пт, 05.10.2012, 16:30 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 14.09.2012
Статус:
Offline
|
Аффигеть!!!!! Добавление еще светика на другом порту показало, что команда HPWM() вообще завешивает ПИК! Светодиод не мигает... Если команды HPWM убрать - мигает. Что-то, видимо, в Протоне недоработано...
Сейчас найду старенькую платку с 16F73, попробую с ней.
Сообщение отредактировал
throgvar - Пт, 05.10.2012, 16:54
|
|
|
|
Matrix252005 |
Дата: Пт, 05.10.2012, 16:34 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Не знаю... Сколько использовал ШИМ на других МК, все было норм!!!!
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
throgvar |
Дата: Пт, 05.10.2012, 17:50 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 14.09.2012
Статус:
Offline
|
На 16F73 команда HPWM работает нормально. Может, в 1503 я какие-то регистры не учитываю?
Ха! А Proton IDE, оказывается, довольно тупой компилятор! В проге для 16F73 случайно указал HPWM 3, 127,1000 - и он это проглотил и даже что-то скомпилировал, несмотря на то, что у 16F73 всего 2 PWM модуля. Т.е. Протон совершенно не отслеживает наличие периферии, это даже PIC Simulator IDE умеет делать.
Сообщение отредактировал
throgvar - Пт, 05.10.2012, 19:45
|
|
|
|
anatol |
Дата: Пт, 05.10.2012, 19:30 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Если проверяете в протеусе, то где взяли модель 1503. В моем 7.10 нет. Если в натуре попытайтесь поменять порты и изменить до 8-ми разрядной ШИМ.
|
|
|
|
throgvar |
Дата: Пт, 05.10.2012, 19:37 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 14.09.2012
Статус:
Offline
|
В протеусе нет 1503. Делаю в натуре, пробовал все 4 PWM, результат один. А как изменить ШИМ до 8 разрядной?
|
|
|
|
anatol |
Дата: Пт, 05.10.2012, 20:20 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Не используйте в коде значения больше 255. А вообще к даташиту и эррата на контроллер. ______________________________________________________ PC Рад был бы помочь поглубже, но английский не родной , более того неродной.
Сообщение отредактировал
anatol - Пт, 05.10.2012, 20:24
|
|
|
|
throgvar |
Дата: Пт, 05.10.2012, 20:44 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 14.09.2012
Статус:
Offline
|
Quote (anatol) PC Рад был бы помочь поглубже, но английский не родной , более того неродной. Аналогично
К даташиту - значит программировать на асме, а я хотел упростить себе задачу
Кажется, начинаю догадываться в 1503 модуль не универсальный CCP, а PWM only, соответственно другие имена регистров, из-за этого, видимо, и ошибка компиляции. Видимо, без асма не обойтись
|
|
|
|
anatol |
Дата: Пт, 05.10.2012, 22:09 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Скомпилировал по умолчанию
Прикрепления:
UN.rar
(24.0 Kb)
|
|
|
|
throgvar |
Дата: Пт, 05.10.2012, 23:21 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 14.09.2012
Статус:
Offline
|
Компилируется-то оно без проблем, только не работеат потом как надо. А в ассемблерном коде, явно сильно избыточном, ковыряться неохота, уж лучше с нуля написать. Или попробую еще на microbasic, может он нормально скомпилирует...
|
|
|
|