|
Скорость вращения мотора зависит от переменной pwm.
Если я ее устанавливаю в программе, то все работает - скорость зависит от значения.
Если я ее беру с АЦП (ко входу подключен потенциометр между землей и питанием), как написано в тексте, то похоже, что всегда 0 - движение на минимальной скорости.
void main (void)
{__set_configuration_word (
BODEN_ON & INTRC_OSC_NOCLKOUT & WDT_ON & PWRTE_OFF & MCLRE_OFF);
PCON=0x03;// set flags POR and BOD
GPIO=0xff;// set 1 to both control pins
WPU=0;// pull-up off
//Timer 0 configuration
T0CS=0; //clock select - from CLKOUT
//ADC configuration
ADCON0= mADFM+ //right justified
//mVCFG+ //voltage refernce from Vdd
mCHS1+ //channel AN2
mADON; //ADC ON
ANSEL= mADCS1+ //32 Tosc = 8 mks conversion
mANS1; //AN2=analog input
TRISIO=input_mask;
T0IF=0;
INTCON=mGIE+mT0IE;
for(;;) {
if (ADIF) {ADIF=0; pwm=ADRESH; if (pwm<15) pwm=15; if (pwm>110) pwm=110;}
// pwm motor control
if ((lo_pwm_counter & 0x7F) >= (pwm ) ) TRISIO= 0xff;
else { TRISIO= input_mask; GO=1; }
__clear_watchdog_timer();
}
}
E-mail: info@telesys.ru