Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ШИМ сигнал для pic12f683
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Pavel_Bor
Есть код

Код
unsigned char i,key,check;
void main()
{
TRISIO=0x03;
ANSEL=0x00;
CMCON0=7;
GPIO=0;

while(1)
{
if ((GPIO.GP0)&&(GPIO.GP1==0))
check=2;
else if ((GPIO.GP0==0)&&(GPIO.GP1))
check=3;
else check=1;

if (check!=key)
{
if ((GPIO.GP0)&&(GPIO.GP1==0))
{
PWM1_Init(29600);
key=2;
PWM1_Set_Duty(127);
PWM1_Start();
delay_ms(3);
}

else if ((GPIO.GP0==0)&&(GPIO.GP1))
{
PWM1_Init(30400);
key=3;
PWM1_Set_Duty(127);
PWM1_Start();
delay_ms(3);
}
else
{
PWM1_Init(30000);
key=1;
PWM1_Set_Duty(127);
PWM1_Start();
delay_ms(3);
}
}
}
}


На протеусе все работает четко. На железе появляется нестабильная частота (0-20 кГц). При подачи ШИМ без цикла все норм... но надо 3 сигнала разной частоты.
Подскажите пожалуйста в чем может быть проблема
ttron
Цитата(Pavel_Bor @ May 16 2010, 13:07) *
Есть код

На протеусе все работает четко. На железе появляется нестабильная частота (0-20 кГц). При подачи ШИМ без цикла все норм... но надо 3 сигнала разной частоты.
Подскажите пожалуйста в чем может быть проблема

Подозреваю, что проблема в постоянной, через 3 мс, инициализации ШИМа. Я не знаю, как это реализовано в библиотеке, но очень может быть постоянное передергивание Init, Set_Duty и Start нарушают процесс синхронизации ШИМа и частота искажается. Это сугубо моя гипотеза, в меру того как я понял проблему, может быть, я ошибаюсь smile.gif
Марк_Я
Так как речь о железе, то желательно увидеть схему и монтаж.
Есть смутное подозрение на некорректное управление входами выбора частоты (подтяжка к питанию-активный уровень низкий).
Или на болтающийся в воздухе сброс.
Или полное отсутствие блокировок.
Или все вместе.
PS Извините конечно, но код написан просто кошмарно... Даже трудно выдумать что либо более нечитаемое.
Тогда писали бы на АСМе...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.