📄 tumode.c
字号:
/*************************************************************************************
文件类型:底层驱动函数文件
文件作用:
修改权限:底层驱动维护人员
文件相关:
创 建 人:GeminiKQ
创建日期:2006.12.20
当前版本:Ver0.2
版本信息:Ver0.1 GeminiKQ
Ver0.2 add uart3~5 GeminiKQ
**************************************************************************************/
#include "ChipDefine.h"
#include "ExTigReg.h"
#include "HardwareDef.h"
//=======================================================
//函数名:Init_ExTU2
//函数作用:外扩timer2及uart2模块初始化
//入口参数:无
//出口参数:无
//
//=======================================================
void Init_ExTU2(void)
{
// timer mode control
TMOD2 = ExT2M;
TL20 = ExT2TL;
TH20 = ExT2TH;
#ifdef ExT2_4CLK
// T0M = 1 -> t0clk = system.clk/4
TCON2 |= BIT4;
#endif
// TR0 = 1; <TCON2.0>
TCON2 |= 0x01;
// 以下为串口设置
SCON2 = ExU2M; // 波特率方式1
#ifdef ExU2_SMOD1
TCON2 |= BIT7; // SET SMOD,波特率加倍
#endif
TL21 = ExU2TL;
TH21 = ExU2TH; //
// T1M = 1;
TCON2 |= BIT5;
#ifdef ExU2_38K
// 载波38K选择
Txd2FS = 0x01;
#endif
// 打开定时器1
TCON2 |= BIT1;
}
//=======================================================
//函数名:Init_ExTU3
//函数作用:外扩timer3及uart3模块初始化
//入口参数:无
//出口参数:无
//
//=======================================================
void Init_ExTU3(void)
{
// timer mode control
TMOD3 = ExT3M;
TL30 = ExT3TL;
TH30 = ExT3TH;
#ifdef ExT3_4CLK
// T0M = 1 -> t0clk = system.clk/4
TCON3 |= BIT4;
#endif
// TR0 = 1; <TCON2.0>
TCON3 |= 0x01;
// 以下为串口设置
SCON3 = ExU3M; // 波特率方式1
#ifdef ExU3_SMOD1
TCON3 |= BIT7; // SET SMOD,波特率加倍
#endif
TL31 = ExU3TL;
TH31 = ExU3TH; //
// T1M = 1;
TCON3 |= BIT5;
// 打开定时器1
TCON3 |= BIT1;
}
//=======================================================
//函数名:Init_ExTU4
//函数作用:外扩timer4及uart4模块初始化
//入口参数:无
//出口参数:无
//
//=======================================================
void Init_ExTU4(void)
{
// timer mode control
TMOD4 = ExT4M;
TL40 = ExT4TL;
TH40 = ExT4TH;
#ifdef ExT4_4CLK
// T0M = 1 -> t0clk = system.clk/4
TCON4 |= BIT4;
#endif
// TR0 = 1; <TCON2.0>
TCON4 |= 0x01;
// 以下为串口设置
SCON4 = ExU4M; // 波特率方式1
#ifdef ExU4_SMOD1
TCON4 |= BIT7; // SET SMOD,波特率加倍
#endif
TL41 = ExU4TL;
TH41 = ExU4TH; //
// T1M = 1;
TCON4 |= BIT5;
// 打开定时器1
TCON4 |= BIT1;
}
//=======================================================
//函数名:Init_ExTU5
//函数作用:外扩timer5及uart5模块初始化
//入口参数:无
//出口参数:无
//
//=======================================================
void Init_ExTU5(void)
{
// timer mode control
TMOD5 = ExT5M;
TL50 = ExT5TL;
TH50 = ExT5TH;
#ifdef ExT5_4CLK
// T0M = 1 -> t0clk = system.clk/4
TCON5 |= BIT4;
#endif
// TR0 = 1; <TCON2.0>
TCON5 |= 0x01;
// 以下为串口设置
SCON5 = ExU5M; // 波特率方式1
#ifdef ExU5_SMOD1
TCON5 |= BIT7; // SET SMOD,波特率加倍
#endif
TL51 = ExU5TL;
TH51 = ExU5TH; //
// T1M = 1;
TCON5 |= BIT5;
// 打开定时器1
TCON5 |= BIT1;
}
/* 初始化Timer0 */
void Init_Timer0(void)
{
TMOD = 0x11; // 2个定时器全部为方式2
// TH1 = 0;
// TL1 = 0;
TH0 = 0x9d;
TL0 = 0xf6; // 启动第一次进中断的时间设定
// TR1 = 1;
TR0 = 1; // 开定时器0
// ET1 = 1;
ET0 = 1; // enable timer0 interrupt
}
void Init_Timer1(void)
{
//
}
void Init_Uart1(void)
{
TMOD = 0x21; // 定时器1方式2
SCON1 = 0xd0; // 波特率方式3
EICON = 0x80; // set smod
TH1 = 0xc7; //
TL1 = 0xc7; // 波特率设置
TR1 = 1; // 开定时器1
}
//=======================================================
//函数名:Init_Timer2
//函数作用:内核Timer2的初始化
//入口参数:无
//出口参数:无
//
//=======================================================
void Init_Timer2(void)
{
RCAP2L = 0x00; // reload data low byte
RCAP2H = 0x50; // reload data high byte
TL2 = 0x00;
TH2 = 0x00;
CP_RL2 = 0; // reload mode
TR2 = 1; // start timer2
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -