Перейти к содержанию
    

ШИМ сигнал для pic12f683

Есть код

 

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 сигнала разной частоты.

Подскажите пожалуйста в чем может быть проблема

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть код

 

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

Подскажите пожалуйста в чем может быть проблема

Подозреваю, что проблема в постоянной, через 3 мс, инициализации ШИМа. Я не знаю, как это реализовано в библиотеке, но очень может быть постоянное передергивание Init, Set_Duty и Start нарушают процесс синхронизации ШИМа и частота искажается. Это сугубо моя гипотеза, в меру того как я понял проблему, может быть, я ошибаюсь :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так как речь о железе, то желательно увидеть схему и монтаж.

Есть смутное подозрение на некорректное управление входами выбора частоты (подтяжка к питанию-активный уровень низкий).

Или на болтающийся в воздухе сброс.

Или полное отсутствие блокировок.

Или все вместе.

PS Извините конечно, но код написан просто кошмарно... Даже трудно выдумать что либо более нечитаемое.

Тогда писали бы на АСМе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...