由于两电机的转速,转动时机都不相同,因而保证它们的连续变相就十分重要,否则,电机的转动就不会平稳,容易损坏,因此要有精确的时钟定时装置对系统的电机控制和数据采集部分进行中断操作,才能使两台电机分别或者同时平稳的运行,采样位置准确。在程序中采用了MSP430单片机片内的16位定时器Timer_A进行定时中断,当程序运行时,首先根据主机发送的命令参数计算出扫描和采样所需要的定时时间,然后预置相应的定时器最大计数值(最大不超过65536),定时器从0计数至最大值时发生中断,进入中断子程序,根据程序设定的标志位mxy判断是水平还是垂直电机转动,如果要控制水平电机,则调用go_stepx(cw,direction_x)函数,该函数读出P1端口前三位,根据其值确定下一相的控制字cw,同时,该函数返回改变后的cw值,可供下一次调用。如果要控制纵向电机,则调用go_stepy(cw,direction_y)函数读出P1端口中间三位,它也返回改变后的cw值,然后驱动电机走一步,执行完毕后返回主程序。当电机走过相应的采样步数后,程序发生中断,进入采样处理程序。
|