xstyler 0 16 мая, 2010 Опубликовано 16 мая, 2010 · Жалоба Есть код 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 0 25 мая, 2010 Опубликовано 25 мая, 2010 · Жалоба Есть код На протеусе все работает четко. На железе появляется нестабильная частота (0-20 кГц). При подачи ШИМ без цикла все норм... но надо 3 сигнала разной частоты. Подскажите пожалуйста в чем может быть проблема Подозреваю, что проблема в постоянной, через 3 мс, инициализации ШИМа. Я не знаю, как это реализовано в библиотеке, но очень может быть постоянное передергивание Init, Set_Duty и Start нарушают процесс синхронизации ШИМа и частота искажается. Это сугубо моя гипотеза, в меру того как я понял проблему, может быть, я ошибаюсь :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 26 мая, 2010 Опубликовано 26 мая, 2010 · Жалоба Так как речь о железе, то желательно увидеть схему и монтаж. Есть смутное подозрение на некорректное управление входами выбора частоты (подтяжка к питанию-активный уровень низкий). Или на болтающийся в воздухе сброс. Или полное отсутствие блокировок. Или все вместе. PS Извините конечно, но код написан просто кошмарно... Даже трудно выдумать что либо более нечитаемое. Тогда писали бы на АСМе... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться