測(cè)試S3C2440的定時(shí)器
本文引用地址:http://m.butianyuan.cn/article/201611/318931.htm
- /*******************************************
- *文件名稱:PWM.c
- *功能:測(cè)試s3c2440的PWM功能
- *作者:jianqi
- *版本:1.0
- **********************************************/
- #include"2440addr.h"http://包含2440相關(guān)寄存器的設(shè)置
- #include"def.h"
- #defineU32unsignedint
- //四個(gè)LED對(duì)應(yīng)GPB5.6.7.8。
- #defineLED15
- #defineLED26
- #defineLED37
- #defineLED48
- #defineBit(x)(1<
- #defineOutput(x)(1<<2*x)//將對(duì)應(yīng)IO置為輸出
- /*******************************************
- *名稱:Timer0_ISR
- *功能:Timer0中斷服務(wù)程序
- *入口參數(shù):無(wú)
- *出口參數(shù):無(wú)
- **********************************************/
- void__irqTimer0_ISR(void)
- {
- staticintcount=0;
- count++;
- rSRCPND=rSRCPND|(0x1<<10);
- rINTPND=rINTPND|(0x1<<10);//每隔2秒LED亮
- if(count%4==0)
- {
- rGPBDAT=~0x1e0;//LED全亮
- }
- elseif(count%4==1)
- {
- rGPBDAT=0x1e0;//LED全滅
- }
- }
- /*******************************************
- *名稱:Time0_init
- *功能:Timer0初始化
- *入口參數(shù):無(wú)
- *出口參數(shù):無(wú)
- **********************************************/
- voidTime0_init(void)
- {
- rTCFG0=249;//250分頻
- rTCFG1=0x02;//1/8分頻,25Khz
- rTCNTB0=12500;//定時(shí)0.5秒
- rTCON=(1<<1)|(1<<3);//更新TCNTB0,自動(dòng)重載
- rTCON&=~(1<<1);//清除手動(dòng)更新位
- }
- /*******************************************
- *名稱:IO_init
- *功能:B口初始化
- *入口參數(shù):無(wú)
- *出口參數(shù):無(wú)
- **********************************************/
- voidIO_init(void)
- {
- rGPBCON=Output(LED1)|Output(LED2)|Output(LED3)|Output(LED4);//LED的IO口置為輸出
- rGPBDAT=0xffff;//LED全部熄滅
- }
- /*******************************************
- *名稱:INT_init
- *功能:中斷初始化
- *入口參數(shù):無(wú)
- *出口參數(shù):無(wú)
- **********************************************/
- voidINT_init(void)
- {
- rSRCPND=rSRCPND|(0x1<<10);
- rINTPND=rINTPND|(0x1<<10);
- rINTMSK=~(0x1<<10);//打開(kāi)Timer0中斷
- }
- /*******************************************
- *名稱:Main
- *功能:測(cè)試PWM功能
- *入口參數(shù):無(wú)
- *出口參數(shù):無(wú)
- **********************************************/
- voidMain(void)
- {
- IO_init();//初始化IO口
- Time0_init();//初始化Timer0
- INT_init();//初始化Timer0的中斷
- pISR_TIMER0=(U32)Timer0_ISR;//注冊(cè)Timer0中斷函數(shù)
- rTCON|=(1<<0);//開(kāi)始TImer0
- while(1);
- {
- ;
- }
- }
評(píng)論