timer1_isr.c
来自「基于Cortex-M3的全自动焊接机」· C语言 代码 · 共 50 行
C
50 行
#include "hw_types.h"
#include "hw_memmap.h"
#include <hw_timer.h>
#include <timer.h>
#include <hw_ints.h>
#include <interrupt.h>
extern unsigned char send_sem;
extern void exchange_485_rec(void);
extern void exchange_485_send(void);
extern void TxFIFOFill(void);
extern unsigned int timerloadvalue;
void start_timer1(unsigned char uc_delay)//定时uc_delay ms
{
TimerDisable(TIMER1_BASE , TIMER_A);
TimerLoadSet(TIMER1_BASE , TIMER_A , (timerloadvalue*uc_delay)/1000);
TimerIntEnable(TIMER1_BASE , TIMER_TIMA_TIMEOUT); // 使能定时器超时中断
TimerEnable(TIMER1_BASE , TIMER_A);
IntEnable(INT_TIMER1A);
}
void stop_timer1(void)
{
TimerDisable(TIMER1_BASE , TIMER_A);
TimerIntDisable(TIMER1_BASE , TIMER_TIMA_TIMEOUT);
IntDisable(INT_TIMER1A); //彻底停止中断进入
}
#if 1
void timer1_isr(void)
{
unsigned long ulStatus;
ulStatus = TimerIntStatus(TIMER1_BASE , true); // 读取中断状态
TimerIntClear(TIMER1_BASE , ulStatus); // 清除中断状态,重要!
if(send_sem)
{
exchange_485_send();
TxFIFOFill();//填充发送数据
send_sem = 0;//准备转为接收状态的预先动作
}
else
{
exchange_485_rec();
stop_timer1();
}
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?