凌阳16位单片机之定时器中断
然后等到溢出的时候进入相应的中断,
本文引用地址:https://www.eepw.com.cn/article/201611/318710.htm说一下*P_INT_Ctrl的意义,他有两个操作,一个是读操作一个写操作,刚开始可能只是看书理解有点难,其实读操作和写操作就是两码事,就像你命令一个人拿东西一样,第一次规定了怎么拿但是下一次拿的时候就不用再告诉怎么拿了,之所以叫做读操作是因为不用写(/这句话看似是废话但是想想还是可以的)即每次清除的不是写操作而读操作,
*P_TimerA_Ctrl代表开启什么频率的中断,*P_TimerA_Data 是初始到溢出的位置
#include "SPCE061A.H"
unsigned Output = 0x0000;
void IRQ1()__attribute__((ISR));
void IRQ1()
{
*P_INT_Clear = 0x1000;
Output=~Output;
*P_IOA_Data=Output;
}
int main()
{
__asm("INT OFF");
*P_IOA_Dir = 0x00ff;
*P_IOA_Attrib = 0x00ff;
*P_IOA_Data = 0x0000;
*P_INT_Ctrl = 0x1000;
*P_TimerA_Ctrl = 0x000d;
*P_TimerA_Data = 0xffff-1024;
__asm("INT IRQ");
while(1)
{
*P_Watchdog_Clear=C_WDTCLR;
}
}
评论