systerm_init.c
来自「一个瑞萨单片机初始化的事例程序。。。。。。。。。。。。。。」· C语言 代码 · 共 184 行
C
184 行
#include "sfr_r81B.h"
#include "var_def.h"
#include "interrupt.h"
#include "systerm_init.h"
/************************************************************************
*函数原型: Init_IO
*功能 : 初始化IO口
************************************************************************/
void Init_IO(void)
{
pd1=0xff;
}
/************************************************************************
*函数原型: Read_Self_AD
*功能 : 读AD
************************************************************************/
unsigned int Read_Self_AD(unsigned char ANx)
{
unsigned int i;
switch(ANx)
{
case 8:
{
pd1_0=0;
adcon0=0b10010100;
break;
}
case 9:
{
pd1_1=0;
adcon0=0b10010101;
break;
}
case 10:
{
pd1_2=0;
adcon0=0b10010110;
break;
}
case 11:
{
pd1_3=0;
adcon0=0b10010111;
break;
}
default:break;
}
adcon1 = 0x00;
adcon2 = 0;
vcut = 1;
adst = 1;
while(adst);
i = ad;
return(i);
}
/************************************************************************
*函数原型: void InitClock(void)
*功能 : 时钟初始化处理程序
************************************************************************/
void InitClock()
{
prcr = 0x01; //关闭和时钟相关的保护寄存器,允许修改时钟
cm14 = 0;
hra00 = 1; //高速内部振荡器振荡
hra2=0; //标准8MHz,出厂参数
SoftWait(100); //等待
hra01 = 1; //使用内部高速振荡器时钟(FRING-Fast)作为内部时钟(FRING)
ocd2 = 1; //使用内部时钟作为系统时钟
cm16 = 0; //CPU时钟不分频
cm17 = 0;
cm06 = 0; //CPU时钟的分频比使用CM16,CM17进行设定
cm05 = 1;
cm13 = 0;
cm10 = 0;
prcr = 0; //打开保护寄存器
}
/************************************************************************
*函数原型: void SoftWait (unsigned int WaitTime)
*功能 : 短延时程序,约6US @8MHz
************************************************************************/
void SoftWait(unsigned int WaitTime)
{
while(0 != WaitTime)
{
__Wait4NOP;
WaitTime --;
}
}
/************************************************************************
*函数原型: InitINT11()
*功能 : INT11中断初始化
************************************************************************/
void InitINT11(void) //
{
pd1_5=0;
r0edg=0; //下降沿
cntrsel=1; //INT11
int1ic=3;
ir_int1ic=0;
}
/************************************************************************
*函数原型: InitTimerX()
*功能 : 短延时程序,约1mS @8MHz
************************************************************************/
void InitTimerX() // 定时器X
{
txck0 = 0; // Timer X count source = f1
txck1 = 0; // Setting main cycle timer 8MHz * 1/1 * 256 * 250 = 2ms
prex = 200-1; // Setting Prescaler X register
tx = 50-1; // Setting timer X register
txmr = 0x00; // Timer X : timer mode
txic = 6; // Interrupt priority level = 5
ir_txic = 0; // Interrupt request flag clear
txs = 1; // Timer X count start flag = start
}
/************************************************************************
*函数原型: InitTimerZ()
*功能 : 短延时程序 约1ms
************************************************************************/
void InitTimerZ() // 定时器Z
{
pum=0;
tzck0 = 0; // Timer Z count source = f1
tzck1 = 0; // Setting main cycle timer
prez = 50-1; // Setting Prescaler z register
tzpr = 40-1; // Setting timer z register
tzmr = 0x00; // Timer z : timer mode
tzic = 7; // Interrupt priority level = 6
ir_tzic = 0; // Interrupt request flag clear
tzs = 1; // Timer z count start flag = start
}
/************************************************************************
*函数原型: InitTimerC()
*功能 :
************************************************************************/
void InitTimerC() // 定时器X
{
tcc0=0; //f32
tcc1=0; //比较0输出模式+比较1匹配时,TC置零+比较TM0输出H,TM1输出L
tcout=0; //允许CMP0_0输出,其他口关闭
tm1=0xffff-1;
tcc00=1; //TimerC启动
tcic = 5; // Interrupt priority level = 7
ir_tcic = 0; // Interrupt request flag clear
}
/************************************************************************
*函数原型: Watchdog_Init
*功能 : 看门狗初始化
************************************************************************/
void Watchdog_Init(void)
{
prc1=1;
pm12=1;
wdts=1;
wdtr=0;
wdtr=0xff;
prc1=0;
}
/************************************************************************
*函数原型: Clear_Watchdog
*功能 : 喂狗
************************************************************************/
void Clear_Watchdog(void)
{
wdtr=0;
wdtr=0xff;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?