реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
Pavel_Bor
сообщение May 16 2010, 09:07
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



Есть код

Код
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 сигнала разной частоты.
Подскажите пожалуйста в чем может быть проблема
Go to the top of the page
 
+Quote Post
ttron
сообщение May 25 2010, 16:11
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 134
Регистрация: 1-06-05
Из: Москва
Пользователь №: 5 634



Цитата(Pavel_Bor @ May 16 2010, 13:07) *
Есть код

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

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


--------------------
"Регистрируй, наблюдай, экономь микросекунду, зря вопрос не задавай, не запоминай ерунду" (с) не помню, чье
Go to the top of the page
 
+Quote Post
Марк_Я
сообщение May 26 2010, 04:39
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 178
Регистрация: 19-09-07
Из: М.О. г.Фрязино
Пользователь №: 30 656



Так как речь о железе, то желательно увидеть схему и монтаж.
Есть смутное подозрение на некорректное управление входами выбора частоты (подтяжка к питанию-активный уровень низкий).
Или на болтающийся в воздухе сброс.
Или полное отсутствие блокировок.
Или все вместе.
PS Извините конечно, но код написан просто кошмарно... Даже трудно выдумать что либо более нечитаемое.
Тогда писали бы на АСМе...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th June 2025 - 23:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.24293 секунд с 7
ELECTRONIX ©2004-2016