ШИМ на PIC16F876A (сколько разрядов?)
|
|
Володимир |
Дата: Ср, 01.07.2015, 14:15 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
69
Замечания:
±
На сайте с 22.04.2010
Статус:
Offline
|
Подскажите сколько разрядов имеет ШИМ в МК PIC16F876A. В разных местах даташита пишут поразному. Для модуля ССР пишут что он может использоватся в качестве двух 8-и разрядных ШИМ, но далее в описании регистров, пишут что наполнение ШИМ можно задавать 10-ю разрядами.
В описании команды Hpwm только 8 разрядов.
Сообщение отредактировал
Володимир - Ср, 01.07.2015, 16:17
|
|
|
|
ivan_fd |
Дата: Ср, 01.07.2015, 19:04 | Сообщение # 2 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Цитата CCPx pinproduces up to a 10-bit resolution PWM output 10 - бит.
|
|
|
|
Володимир |
Дата: Пн, 14.09.2015, 17:26 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
69
Замечания:
±
На сайте с 22.04.2010
Статус:
Offline
|
Подскажите где туплю, простенький проект, сделать 10-ти битное АЦП и результат 10 бит передать на ШИМ. В протеусе когда ползунок перемещаю от нуля гдето до 25% наполнение увеличивается от нуля до 100%, дальше на осцилографе чтото непонятное. По идее, наполнение должно растянутся на всю длинну резистора. И не понятно где у ШИМ верхняя граница, если поставить ограничение на 255, то наполнение ШИМ останавливается на уровне 75%.
Device 16F876A Xtal 8 ADCON1 = %10000000 TRISA.0 = 1 TRISA.1 = 1 TRISA.2 = 1 TRISA.3 = 1 TRISA.4 = 1 TRISA.5 = 1 TRISB.0 = 0 TRISB.1 = 0 TRISB.2 = 1 TRISB.3 = 1 TRISB.4 = 1 TRISB.5 = 1 TRISB.6 = 1 TRISB.7 = 1 TRISC.0 = 0 TRISC.1 = 0 TRISC.2 = 1 TRISC.3 = 1 TRISC.4 = 1 TRISC.5 = 1 TRISC.6 = 1 TRISC.7 = 1
Dim RezAcp As Word 'Результат АЦП
Declare Adin_Res 10 Declare Adin_Tad 2_FRC Declare Adin_Stime = 50
ccp2con=0
Clear
HPWM 2 , 254 , 20000 ' Включаем ШИМ
START: ' Мітка початку основної програми ------------------------------------------
RezAcp = ADIn 0
RezAcp.byte1=adresh RezAcp.byte0=adresl
CCPR2L.7=RezAcp.9 CCPR2L.6=RezAcp.8 CCPR2L.5=RezAcp.7 CCPR2L.4=RezAcp.6 CCPR2L.3=RezAcp.5 CCPR2L.2=RezAcp.4 CCPR2L.1=RezAcp.3 CCPR2L.0=RezAcp.2 CCP2CON.5=RezAcp.1 CCP2CON.4=RezAcp.0
goto START
|
|
|
|
xvovanx |
Дата: Пн, 14.09.2015, 19:55 | Сообщение # 4 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
328
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
АЦП 10 бит (0-1023), ШИМ 8 бит (0-255) вот у Вас на 25% реостата АЦП наполнение ШИМ на полную и выходит. Сделайте АЦП 8 битным как и ШИМ.
Сообщение отредактировал
xvovanx - Пн, 14.09.2015, 19:56
|
|
|
|
dimvad |
Дата: Пн, 14.09.2015, 23:03 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
80
Замечания:
±
На сайте с 20.07.2012
Статус:
Offline
|
Цитата АЦП 10 бит (0-1023) На самом деле получается не 1023, а 1000, мочему-то? Делал я как-то тренировочную модельку.
|
|
|
|
Володимир |
Дата: Вт, 15.09.2015, 09:29 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
69
Замечания:
±
На сайте с 22.04.2010
Статус:
Offline
|
Цитата xvovanx ( ) АЦП 10 бит (0-1023), ШИМ 8 бит (0-255) вот у Вас на 25% реостата АЦП наполнение ШИМ на полную и выходит. Сделайте АЦП 8 битным как и ШИМ. Шим я тоже использую 10 бит, так как заполняю два младшие бита. CCP2CON.5=RezAcp.1 CCP2CON.4=RezAcp.0 Цитата dimvad ( ) На самом деле получается не 1023, а 1000, мочему-то? Делал я как-то тренировочную модельку. Странно конечно, у меня почемуто максимум 399, при 400 уже непонятно что на осцылографе, может имеет значение какая частота ШИМ.
Сообщение отредактировал
Володимир - Вт, 15.09.2015, 09:31
|
|
|
|
ivan_fd |
Дата: Вт, 15.09.2015, 13:06 | Сообщение # 7 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Конечно имеет значение какая частота. Откройте даташит на контроллер и внимательно почитайте как считается частота, период и скважность.
Цитата из даташита:
Цитата П р и ме ч а ни е. Если длительность импульса ШИМ больше периода ШИМ, вывод CCP1 не будет иметь низкий уровень сигнала.
|
|
|
|