шаговый двигатель нерегулярного движения
Я использую MCU8051 IDE на MCU STM16; следующий сегментный код управляет скоростью шагового двигателя путем переключения порта P2.0 на любом шаговом драйвере PSR5041 в соответствии с напряжением потенциометра, подключенным к каналу АЦП P1.0:
MOV A,#11111111bMOV P1ASF, #000000001B; установить P1.0 ADCMOV ADC_CONTR, #11101000B; задержку включения АЦП и запуск аналого-цифрового преобразования; P1.0 как ADC NOPNOPNOPNOP
MOV TH0, ADC_RES ;A (high byte PWM)
MOV TL0, ADC_RES ;A (low byte PWM)
CLR TF0 ;clear timer overflow flag
SETB TR0 ;start timer
ЖДАТЬ:
JNB TF0, WAIT ;wait for overflow
DJNZ A,WAIT ;A counter
CLR P2.2 ;ENA On PSR5042
CPL P2.0 ;toggle port bit
JB P0.3, LOOP ;Verify RIGTH, LEFT sensor
проблема в том, что код может управлять скоростью шагового двигателя только в очень коротком диапазоне, включая нерегулярные движения или потерю крутящего момента. ¿Как я могу улучшить код, чтобы я мог более точно управлять двигателем?