中断(定时器)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
查询方式:
#include "config.h"
#define LED 1<<17
void Time0Init(void)
{
T0TC=0;
T0PR = 0;
T0MCR = 0x03;
T0MR0 = Fpclk/2;
T0TCR = 0x01;
}
int main(void)
{
PINSEL0 = 0x00000000;
IO0DIR = LED;
Time0Init();
while(1)
{
while((T0IR&0x01) == 0);
T0IR = 0x01;
if((IO0SET&LED) == 0)
IO0SET = LED;
else
IO0CLR = LED;
}
return 0;
}
中断:
#include "config.h"
#define LED 1<<17
void __irq IRQ_TIMER0(void) {
if((IO0PIN & LED)==0)
IO0SET=LED;
else
IO0CLR=LED;
T0IR=0x01;
VICVectAddr=0x00;
}
int main (void)
{
PINSEL1=0X00;
IO0DIR= 1<<17;
T0TC=0;
T0PR=0;
T0MCR=0x03;
T0MR0=Fpclk;
T0TCR=0x01;
IRQEnable();
VICIntSelect=VICIntSelect &(~(1<<4));
VICVectCntl0=0x20|4;
VICVectAddr0=(uint32)IRQ_TIMER0;
VICIntEnable=(1<<4);
while(1);
return 0;
}