Код
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);
}
}
}
}
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 сигнала разной частоты.
Подскажите пожалуйста в чем может быть проблема