Страница 1 из 1

ШИМ PIC16f628A

Добавлено: Пн авг 05, 2013 14:37:23
vovik15
здравствуйте! у меня возникла такая проблема, никак не могу запустить модуль ССР в режиме ШИМ. осцилограф в протеусе цепляю,а он ничего не показывает
хочу сделать так чтобы при нажатии кнопки скваженность увеличиваласть а при нажатии другой кнопки уменьшалась.
при нажатии третьей кнопки частота увеличивалась а при нажатии четвертой уменьшалась
вот код

Код: Выделить всё

#include <pic.h>
//pic16f628a

__CONFIG (INTIO & UNPROTECT & LVPDIS 
& BOREN & MCLRDIS & PWRTEN & WDTDIS);

void podgot (void); // подготовка МК

// === начало программы
void main (void){
podgot ();  
while(1) 
{

} //конец бесконечного цикла
} //конец программы


// === подготовка МК
void podgot (void)
{

INTCON = 0;// чистим регистр прерываний
TRISA = 0b00000000; TRISB = 0b00000000;
CMCON = 0x07;//  отключаем компараторы
PORTA = 0; PORTB = 0; 
RBPU = 0; // включить подтягивающие резисторы
PEIE = 1; //  разрешаем прерывания периферии
//ШИМ
PR2=20;//Период шим 1000
CCPR1L=100; CCP1CON |= 0b00110000; //устанавливаем длительность импульса
TRISB3=0;//вывод ССР на выход
TMR2ON=1;//включаем таймер 2
T2CKPS1=0;//предделитель таймера 1к1
T2CKPS0=0;
CCP1CON |=0b00001100;//включаем ССР в режим ШИМ
}



спасибо за помощь :))

Re: ШИМ PIC16f628A

Добавлено: Пн авг 05, 2013 14:51:16
Аlex
PWM.rar
(60.52 КБ) 358 скачиваний

Код: Выделить всё

void main(void){
CCP1CON = 0b1100 ;
PR2=0x3F;
TMR2ON=1;
TRISB3=0;

CCPR1L=100;

while(1){


}
}


Re: ШИМ PIC16f628A

Добавлено: Пн авг 05, 2013 15:23:16
vovik15
спасибо,заработало.
со скваженностью все понятно,а как частоту изменять?

Re: ШИМ PIC16f628A

Добавлено: Пн авг 05, 2013 15:25:58
КРАМ
PR2

Re: ШИМ PIC16f628A

Добавлено: Пн авг 05, 2013 18:07:19
Dmitry Dubrovenko
КРАМ писал(а):PR2
И прескалер.
И не забывать, что с уменьшением PR2 уменьшается и разрешающая способность ШИМа.

Re: ШИМ PIC16f628A

Добавлено: Ср авг 07, 2013 09:34:55
vovik15
а можно ли на базе этого шима организовать генератор импульсов с регулировкой частоты и коэфициента заполнения? если да то подскажите как

Re: ШИМ PIC16f628A

Добавлено: Ср авг 07, 2013 09:59:09
КРАМ
Можно, только нужно определить требуемую дискретность по заполнению и частоте.
Необходимо отдавать себе отчет в том, что входная частота ШИМа должна быть обратна шагу ПЕРИОДА ШИМа.
Пример.
Нужно иметь шаг 1 Гц для частот в районе 1000 Гц.
Значит нужно найти разность периодов частот 1000 Гц и 1001 Гц.
Получаем 1000 мкс - 999 мкс = 1 мкс.
Входная частота 1 МГц
Другой пример.
Нужен тоже шаг в 1 Гц, но уже для частоты 100 кГц.
Получаем 10 мкс - 9,9999 мкс = 100 пикосекунд
Входная частота 10 ГГц...
:cry:
:wink: