使用这个的测试代码
http://www.openedv.com/forum.php?mod=viewthread&tid=76190&highlight=%B2%BD%BD%F8%B5%E7%BB%FA
驱动器是LV8728,使用了128个细分,发25600个脉冲可以完整转了一圈,但是分开发脉冲就一圈就多走出了一点。
代码如下:
int main(void) { u8 i; u8 keyval; NVIC_Configuration(); delay_init(); //延时函数初始化 uart_init(115200); //串口初始化为115200 usmart_dev.init(72); //初始化USMART LED_Init(); //初始化与LED连接的硬件接口 KEY_Init(); //初始化按键 Driver_Init(); //驱动器初始化 TIM1_OPM_RCR_Init(999, 72 - 1); //1MHz计数频率 单脉冲+重复计数模式
while (1) { /*keyval = KEY_Scan(0); if (keyval == WKUP_PRES) { Locate_Abs(0, 500); //按下WKUP,回零点 } else if (keyval == KEY0_PRES) { Locate_Rle(200, 500, CW); //按下KEY0,以500Hz的频率 顺时针发200脉冲 } else if (keyval == KEY1_PRES) { Locate_Rle(400, 500, CCW); //按下KEY1,以500Hz的频率 逆时针发400脉冲 } delay_ms(10); i++; if (i == 50) { i = 0; LED1 = !LED1; }*/ for(u8 t=0;t<40;t++){
Locate_Rle(640, 9000, CW);
delay_s(1);
}
}}
减少了速度还是回多步
一周热门 更多>