PWM в 16F1503 - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » PWM в 16F1503
PWM в 16F1503
throgvar Дата: Пт, 05.10.2012, 14:45  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 25
Репутация: 0   ±
Замечания:   ±
На сайте с 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
ЯНДЕКС Дата: 05.10.2012
Matrix252005 Дата: Пт, 05.10.2012, 15:40  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 672
Репутация: 20   ±
Замечания:   ±
На сайте с 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
Репутация: 0   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 672
Репутация: 20   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

У меня более старая версия... sad

У меня, 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
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2012

Статус: Offline

Quote (Matrix252005)
HPWM Channel , Dutycycle , Frequency

Dutycycle - переменная, константа которые могут принимать значения в дипазоне чисел от 0 до 255. Почему она у Вас больше 255???

Каюсь, невнимательно... cry Изменил, и TRISC поправил - никакого эффекта. Такое впечатление, что порт находтся в состоянии ввода...
Matrix252005 Дата: Пт, 05.10.2012, 16:12  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 672
Репутация: 20   ±
Замечания:   ±
На сайте с 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
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2012

Статус: Offline

Аффигеть!!!!!
Добавление еще светика на другом порту показало, что команда HPWM() вообще завешивает ПИК! Светодиод не мигает... Если команды HPWM убрать - мигает.
Что-то, видимо, в Протоне недоработано...

Сейчас найду старенькую платку с 16F73, попробую с ней.

Сообщение отредактировал throgvar - Пт, 05.10.2012, 16:54
Matrix252005 Дата: Пт, 05.10.2012, 16:34  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 672
Репутация: 20   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Не знаю... Сколько использовал ШИМ на других МК, все было норм!!!!

THE TRUTH IS OUT THERE.

С уважением, Николай.
throgvar Дата: Пт, 05.10.2012, 17:50  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 25
Репутация: 0   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 535
Репутация: 13   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Если проверяете в протеусе, то где взяли модель 1503. В моем 7.10 нет. Если в натуре попытайтесь поменять порты и изменить до 8-ми разрядной ШИМ.
throgvar Дата: Пт, 05.10.2012, 19:37  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 25
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2012

Статус: Offline

В протеусе нет 1503. Делаю в натуре, пробовал все 4 PWM, результат один.
А как изменить ШИМ до 8 разрядной?
anatol Дата: Пт, 05.10.2012, 20:20  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 535
Репутация: 13   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Не используйте в коде
Quote
HPWM 1, 1023, 2000

значения больше 255.
А вообще к даташиту и эррата на контроллер.
______________________________________________________
PC Рад был бы помочь поглубже, но английский не родной biggrin , более того неродной. sad

Сообщение отредактировал anatol - Пт, 05.10.2012, 20:24
throgvar Дата: Пт, 05.10.2012, 20:44  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 25
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2012

Статус: Offline

Quote (anatol)
PC Рад был бы помочь поглубже, но английский не родной , более того неродной.

Аналогично smile

К даташиту - значит программировать на асме, а я хотел упростить себе задачу sad

Кажется, начинаю догадываться wacko в 1503 модуль не универсальный CCP, а PWM only, соответственно другие имена регистров, из-за этого, видимо, и ошибка компиляции. Видимо, без асма не обойтись cry
anatol Дата: Пт, 05.10.2012, 22:09  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 535
Репутация: 13   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Скомпилировал по умолчанию
Прикрепления: UN.rar(24Kb)
throgvar Дата: Пт, 05.10.2012, 23:21  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 25
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2012

Статус: Offline

Компилируется-то оно без проблем, только не работеат потом как надо. А в ассемблерном коде, явно сильно избыточном, ковыряться неохота, уж лучше с нуля написать. Или попробую еще на microbasic, может он нормально скомпилирует...
Форум Picbasic.ru » Программирование МК » Proton PicBasic » PWM в 16F1503
Страница 1 из 212»
Поиск: