📄 main.c
字号:
#define IN_MAIN
#include "config.h"
#include "Time.h"
#include "Enhance_GPIO.h"
#pragma import(__use_no_semihosting_swi) //don't delete this line
/*
Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
*/
#define Tn_n 0 // 定时器0,Tn_n=0
// 定时器1,Tn_n=1
// 定时器2,Tn_n=2
// 定时器3,Tn_n=3
#define BEEP (1 << 7) // P0.7为蜂鸣器控制端
#define Tn_time 110592/2 // 定时0.5S
#define Tn_PR 99 // 预分频100
#define Tn_MODE 0 // 匹配时,定时器复位
#define Tn_EXT_MODE 0 // 匹配时,不执行任何动作
#define Tn_MAT 0 // 匹配通道0
#define Tn_INT_En 1 // 匹配时,产生中断
/*********************************************************************************************************
** Function name: IRQ_Exception
** Descriptions: interrupt exceptional handler , change it as needed
** don't delete this function
********************************************************************************************************/
void IRQ_Exception(void)
{
}
/*********************************************************************************************************
** 函数名称:Main()
** 函数功能:控制蜂鸣器的鸣叫。
** 说明:JP9短接,JP4断开。
********************************************************************************************************/
void Main(void)
{
TargetInit(VPBDIV_DATA, PLLCFG_DATA, MAMTIM_DATA); // don't delete
while((PLLSTAT & (1 << 10)) == 0); // can delete
P0_GPIOInit(BEEP,1); //蜂鸣器控制引脚设置为GPIO输出模式
// 定时器0初始化
#if(Tn_n == 0)
T0MAT_Init(Tn_time,Tn_PR,Tn_MODE,Tn_EXT_MODE,Tn_MAT,Tn_INT_En);
while(1)
{ while( (T0IR&0x01) == 0 ); // 等待定时时间到
T0IR = 0x01; // 清除中断标志
if( (FIO0SET & BEEP) == 0 ) FIO0SET = BEEP; // 控制蜂鸣器停止鸣叫
else FIO0CLR = BEEP; // 控制蜂鸣器鸣叫
}
#endif
// 定时器1初始化
#if(Tn_n == 1)
T1MAT_Init(Tn_time,Tn_PR,Tn_MODE,Tn_EXT_MODE,Tn_MAT,Tn_INT_En);
while(1)
{ while( (T1IR&0x01) == 0 ); // 等待定时时间到
T1IR = 0x01; // 清除中断标志
if( (FIO0SET & BEEP) == 0 ) FIO0SET = BEEP; // 控制蜂鸣器停止鸣叫
else FIO0CLR = BEEP; // 控制蜂鸣器鸣叫
}
#endif
// 定时器2初始化
#if(Tn_n == 2)
T2MAT_Init(Tn_time,Tn_PR,Tn_MODE,Tn_EXT_MODE,Tn_MAT,Tn_INT_En);
while(1)
{ while( (T2IR&0x01) == 0 ); // 等待定时时间到
T2IR = 0x01; // 清除中断标志
if( (FIO0SET & BEEP) == 0 ) FIO0SET = BEEP; // 控制蜂鸣器停止鸣叫
else FIO0CLR = BEEP; // 控制蜂鸣器鸣叫
}
#endif
// 定时器3初始化
#if(Tn_n == 3)
T3MAT_Init(Tn_time,Tn_PR,Tn_MODE,Tn_EXT_MODE,Tn_MAT,Tn_INT_En);
while(1)
{ while( (T3IR&0x01) == 0 ); // 等待定时时间到
T3IR = 0x01; // 清除中断标志
if( (FIO0SET & BEEP) == 0 ) FIO0SET = BEEP; // 控制蜂鸣器停止鸣叫
else FIO0CLR = BEEP; // 控制蜂鸣器鸣叫
}
#endif
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -