systick_isr.c

来自「基于Cortex-M3的全自动焊接机」· C语言 代码 · 共 72 行

C
72
字号
#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 + =
减小字号Ctrl + -
显示快捷键?