You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
204 lines
4.9 KiB
204 lines
4.9 KiB
#include "msp_Time1.h"
|
|
#define D_TIMER_COUNT(t,clk,timeInUs) (U16)(65536- 1.0 * (clk) / 1000 * (1.0 * timeInUs / 1000) / t)
|
|
_TS_timer1 ts_timer1;
|
|
#if 0
|
|
|
|
|
|
void L0_timer1_Init_7ms(void) //7毫秒@11.0592MHz
|
|
{
|
|
AUXR &= 0xBF; //定时器时钟12T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0xCD; //设置定时初值
|
|
TH1 = 0xE6; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
}
|
|
|
|
void L0_timer1_Init_5ms(void) //5毫秒@11.0592MHz
|
|
{//0x7F示波器测试大约40ms,led闪烁 肉眼可见
|
|
AUXR &= 0xBF; //定时器时钟12T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0x00; //设置定时初值
|
|
TH1 = 0xEE; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
}
|
|
|
|
void L0_timer1_Init_1ms(void) //1毫秒@11.0592MHz
|
|
{
|
|
AUXR |= 0x40; //定时器时钟1T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0xCD; //设置定时初值
|
|
TH1 = 0xD4; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
}
|
|
|
|
void L0_timer1_Init(void) //600微秒@11.0592MHz
|
|
{
|
|
U16 val = D_TIMER_COUNT(1,D_sys_MainFre,TYPE_JIFFIES_600US);
|
|
AUXR |= 0x40; //定时器时钟1T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
//TL1 = 0x14; //设置定时初值
|
|
//TH1 = 0xE6; //设置定时初值
|
|
TL1 = val; //设置定时初值
|
|
TH1 = val >>8; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
}
|
|
|
|
|
|
//0x7F示波器测试大约40ms,led闪烁 肉眼可见
|
|
void L0_timer1_reset(void)
|
|
{
|
|
U16 val = D_TIMER_COUNT(1,D_sys_MainFre,TYPE_JIFFIES_600US);
|
|
TR1 = 0;
|
|
//TL1 = 0x14; //设置定时初值
|
|
//TH1 = 0xE6; //设置定时初值
|
|
TL1 = val; //设置定时初值
|
|
TH1 = val >>8; //设置定时初值
|
|
TR1 = 1;
|
|
TF1 = 0;
|
|
}
|
|
|
|
|
|
void L0_timer1_start() //600微秒@11.0592MHz
|
|
{
|
|
#if 0
|
|
AUXR |= 0x40; //定时器时钟1T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0x14; //设置定时初值
|
|
TH1 = 0xE6; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
|
|
#else
|
|
U16 val = D_TIMER_COUNT(1,D_sys_MainFre,TYPE_JIFFIES_600US);
|
|
AUXR |= 0x40; //定时器时钟1T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
//TL1 = 0xCD; //设置定时初始值
|
|
//TH1 = 0xD4; //设置定时初始值
|
|
TL1 = val; //设置定时初值
|
|
TH1 = val >>8; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
#endif
|
|
}
|
|
|
|
|
|
void L0_timer1_restart() //600微秒@11.0592MHz
|
|
{
|
|
U16 val = D_TIMER_COUNT(1,D_sys_MainFre,TYPE_JIFFIES_600US);
|
|
TR1 = 0; //先关闭,否则会重复中断,起不到resetart效果
|
|
#if 1
|
|
AUXR |= 0x40; //定时器时钟1T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
//TL1 = 0x14; //设置定时初值
|
|
//TH1 = 0xE6; //设置定时初值
|
|
TL1 = val; //设置定时初值
|
|
TH1 = val >>8; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
|
|
#else
|
|
AUXR |= 0x40; //定时器时钟1T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0xCD; //设置定时初始值
|
|
TH1 = 0xD4; //设置定时初始值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
#endif
|
|
}
|
|
|
|
void L0_timer1_stop2222(void)
|
|
{
|
|
TR1 = 0;
|
|
TF1 = 0;
|
|
}
|
|
|
|
void L0_timer1_init6666(void) //TYPE_JIFFIES_25MS@11.0592MHz
|
|
{
|
|
U16 val = D_TIMER_COUNT(1,D_sys_MainFre,TYPE_JIFFIES_25MS);
|
|
TR1 = 0; //先关闭,否则会重复中断,起不到resetart效果
|
|
AUXR |= 0x40; //定时器时钟1T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
//TL1 = 0x14; //设置定时初值
|
|
//TH1 = 0xE6; //设置定时初值
|
|
TL1 = val; //设置定时初值
|
|
TH1 = val >>8; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
void L0_timer1_init(void)
|
|
///void Timer1Init(void) //20毫秒@22.1184MHz
|
|
{
|
|
AUXR &= 0xBF; //定时器时钟12T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0x00; //设置定时初始值
|
|
TH1 = 0x70; //设置定时初始值
|
|
TF1 = 0; //清除TF1标志
|
|
// TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
}
|
|
|
|
|
|
void timer1_isrHanddle(void) interrupt 3//// D_SERVE_TIMER1
|
|
{
|
|
|
|
TF1 = 0; //清除TF1标志
|
|
|
|
D_motor1_BI_rev();
|
|
|
|
#if 0
|
|
Ts_uart_rev_ *p = &s_uart0_rec;
|
|
#define D_s_modbus_min 4 //modbus协议的最小长度
|
|
|
|
if((p->head == 1) && (p->num >= D_s_modbus_min))
|
|
{
|
|
//LED1 ^= 1;
|
|
p->head = 0;
|
|
#ifdef D_use_crc
|
|
crc16qq(p->crc,p->buf,p->num - 2); ////fixme 20220311 ///crc16qq(p->crc,p->buf,p->num - 2); //校验CRC
|
|
#endif
|
|
|
|
// crc16(p->crc,p->buf,p->num - 2); //校验CRC
|
|
if(p->crc[0] == p->buf[p->num-2] && p->crc[1] == p->buf[p->num-1])
|
|
{
|
|
p->ok = 1;
|
|
LED0 ^= 1;
|
|
}
|
|
p->debugok = 1;
|
|
}
|
|
L0_timer1_stop();
|
|
#endif
|
|
/// L2_callback_uart0_free();
|
|
|
|
// ts_timer1.callback();
|
|
|
|
}
|
|
|
|
|
|
/******************************END*********************************/
|
|
|
|
|
|
|
|
|
|
|