127、运动控制中的硬件抽象层设计
运动控制中的硬件抽象层设计从一次电机“鬼畜”说起去年调试一个四轴协作机器人,电机在低速运行时突然出现周期性抖动,示波器抓出来一看,电流波形每隔几十毫秒就出现一个毛刺。排查了三天,最后发现是底层驱动库里的定时器中断优先级被某个外设库给改了——硬件抽象层(HAL)里一个不起眼的HAL_NVIC_SetPriority调用,把电机控制中断的优先级从0降到了3,导致电流环被其他中断频繁打断。那次之后我彻底明白:运动控制的硬件抽象层,不是简单封装几个寄存器读写函数就完事的。它决定了你的控制算法到底能跑多“硬”,也决定了你换一块主控芯片时,是改三行代码还是重写整个工程。硬件抽象层到底要抽象什么?很多初学者把HAL理解成“把寄存器操作包成函数”,比如:voidmotor_set_pwm(uint8_tch,uint16_tduty)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2634174.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!