📄 systick_isr.c
字号:
#include <hw_sysctl.h>
#include "systick.h"
#include "sys_tick.h"
#include "globaltype.h"
extern unsigned long ulPeriod;
extern unsigned int timerloadvalue;
extern struct placed_relate_parm palced_magor[];
void init_systick(void)
{
SysTickPeriodSet(timerloadvalue/20); // 设置SysTick计数器的周期值//50ms
}
void start_systick(void)
{
SysTickDisable();
SysTickPeriodSet(timerloadvalue/20);
SysTickIntEnable();
SysTickEnable(); // 使能SysTick计数器
}
void stop_systick(void)
{
SysTickDisable();
SysTickIntEnable();
}
void systick_isr(void)
{
if(palced_magor[0].stop_sem)
{
if(palced_magor[0].old_absulotely_code != palced_magor[0].absulotely_code)
{
palced_magor[0].old_absulotely_code = palced_magor[0].absulotely_code;
}
else
{
palced_magor[0].motor_current_duty = 6000;//恢复原值
palced_magor[0].not_normlation_timerunit = 0;//电机速度为零
palced_magor[0].stop_sem = 0;
palced_magor[0].IS_driver = 0;
palced_magor[0].usr_require = 0;
}
}
if(palced_magor[1].stop_sem)
{
if(palced_magor[1].old_absulotely_code != palced_magor[1].absulotely_code)
{
palced_magor[1].old_absulotely_code = palced_magor[1].absulotely_code;
}
else
{
palced_magor[1].motor_current_duty = 6000;
palced_magor[1].not_normlation_timerunit = 0;//电机速度为零
palced_magor[1].stop_sem = 0;
palced_magor[1].IS_driver = 0;
palced_magor[1].usr_require = 0;
}
}
if(palced_magor[2].stop_sem)
{
if(palced_magor[2].old_absulotely_code != palced_magor[2].absulotely_code)
{
palced_magor[2].old_absulotely_code = palced_magor[2].absulotely_code;
}
else
{
palced_magor[2].motor_current_duty = 6000;
palced_magor[2].not_normlation_timerunit = 0;//电机速度为零
palced_magor[2].stop_sem = 0;
palced_magor[2].IS_driver = 0;
palced_magor[2].usr_require = 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -