📄 mcu.c
字号:
/* Include Files */
#include <MC68HC908GZ16.h> /* include peripheral declarations */
#include "Sci.h"
#include "Type.h"
#include "MSCAN08.h"
/* Local Variables */
UINT16 time_counter;
/*****************************************************************************
* TIM1Init:定时器一模块初始化
* Input: None
* Output: None
* Parameters: None
*
****************************************************************************/
void TIM1Init(void){
T1SC_TSTOP=1;//T1SC STOPPED
T1SC_TRST=1;//T1SC RESET
T1SC=0X40;//TOIE ENABLE,1PRESCALE,f=2M/1
//T1SC0=0X48;//输入,上升沿捕捉
//T1SC1=0x1a; //00011010;unbuffered PWM
T1MODH=0X07;//PWM period
T1MODL=0XD0;//0X7D0=2000,2000/2M=0.001=1MS
T1SC_TSTOP=0;//T1SC STOPPED
}
/*****************************************************************************
*TIM1Init:定时器二模块初始化
* Input: None
* Output: None
* Parameters: None
*
****************************************************************************/
void TIM2Init(void){
T2SC_TSTOP=1;//T1SC STOPPED
T2SC_TRST=1;//T1SC RESET
T2SC=0X46;//TOIE ABLE,64PRESCALE,f=2M/64
T2SC0=0x1A;//00011010;unbuffered PWM ZHONGDUA N
T2SC1=0x1A; //00011010;unbuffered PWM
T2MODH=0X01;//PWM period
T2MODL=0X38;//0X1F4=500,5000*64/2M=0.04=40MS
T2SC_TOIE=1;
T2SC_TSTOP=0;//T2SC STOPPED
}
/*****************************************************************************
* IOInit:IO初始化
* Input: None
* Output: None
* Parameters: None
*
****************************************************************************/
void IOInit(void){
DDRA_DDRA1=1;
DDRA_DDRA2=1;
DDRA_DDRA3=1;
DDRA_DDRA4=1;
}
/*****************************************************************************
* delay:延时程序
* Input: time:延时毫秒数,5=5ms
* Output: None
* Parameters: None
*
****************************************************************************/
void delay(UINT8 time){
time_counter=0;
while(time_counter<time);
}
/*****************************************************************************
* TIM1_Overflow_ISR:定时器一溢出中断函数
* Input: None
* Output: None
* Parameters: None
*
****************************************************************************/
interrupt 6 void TIM1_Overflow_ISR(void){
static UINT8 counter;
T1SC_TOIE=0;//TOIE DISABLE
T1SC_TOF=0;//CLEAR TOF
time_counter++;
counter++;
if (counter>100){
//SciTxEnable;
counter=0;
}
T1SC_TOIE=1;//TOIE ENABLE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -