📄 time01.c
字号:
#include "config.h"
#define BEEPCON 1<<7
void delay (uint32 dly)
{uint32 i;
for (;dly>0;dly--)
for (i=0;i<5000;i++);
}
void __irq IRQ_Time0(void)
{
IO0CLR=BEEPCON;
T0IR=0x01; //清除中断标志
VICVectAddr=0x00; //通知VIC中断处理结束
}
void __irq IRQ_Time1(void)
{
IO0SET=BEEPCON;
T1IR=0x01; //清除中断标志
VICVectAddr=0x00; //通知VIC中断处理结束
}
/************************************************************/
void Time0Init(void)
{
T0PR=99; //设置定时器0分频为100分频,得110592Hz
T0MCR=0x03; //匹配通道0匹配中断并复位T0TC
T0MR0=110592; //比较值(1s定时值)
T0TCR=0x03; //启动并复位T0TC
T0TCR=0x01;
VICIntSelect=0x00;
VICVectCntl0=(1<<5)|4;
VICVectAddr0=(uint32)IRQ_Time0;
VICIntEnable=0x00000030;
}
void Time1Init(void)
{
T1PR=99; //设置定时器0分频为100分频,得110592Hz
T1MCR=0x03; //匹配通道0匹配中断并复位T0TC
T1MR0=110592; //比较值(1s定时值)
T1TCR=0x03; //启动并复位T0TC
T1TCR=0x01;
VICIntSelect=0x00;
VICVectCntl1=(1<<5)|5;
VICVectAddr1=(uint32)IRQ_Time1;
VICIntEnable=0x00000030;
}
/*************************************************************/
int main(void)
{
PINSEL0=0x00000000;
IO0DIR=BEEPCON;
Time0Init();
delay(5);
Time1Init();
while(1); //等待定时器0中断或定时器1匹配输出
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -