Делаю ШИМ-контроллер, на котором можно будет задавать заполнение с помощью двух кнопок ("+" и "-"). Сами кнопки хочу примотать к пинам 0 и 1 порта А. Для проверки наличия напряжения на пинах пользуюсь конструкцией типа: if(PINA.0==1). Получается странная вещь - после подачи короткого импульса где-то полсекунды ничего не происходит, потом контроллер ведёт себя так, как будто бы я держу напряжение на ножке на высоком уровне, но импульс-то был короткий, я тут же убрал напряжение! Откуда берётся такое запаздывание? Что можно сделать? Спасибо заранее.
Вот собственно управляющий код:
Код
if((PINA.0==1)&&(pwm<100))
{
pwm++;
}
if((PINA.1==1)&&(pwm>0))
{
pwm--;
}
f=pwm;
pwm_val=floor(255*(f/100));
lcd_putsf("PWM: ");
itoa(pwm,c);
lcd_puts©;
OCR2=pwm_val;
delay_ms(100);
lcd_clear();
{
pwm++;
}
if((PINA.1==1)&&(pwm>0))
{
pwm--;
}
f=pwm;
pwm_val=floor(255*(f/100));
lcd_putsf("PWM: ");
itoa(pwm,c);
lcd_puts©;
OCR2=pwm_val;
delay_ms(100);
lcd_clear();