《S3C2440进行微秒级、毫秒级延时函数》由会员分享,可在线阅读,更多相关《S3C2440进行微秒级、毫秒级延时函数(3页珍藏版)》请在金锄头文库上搜索。
1、MCLK:405MHzHCLK:135MHzPCLK:67.5MHz在这里定时器时钟频率为PCLK/8=67.5/8=8.4375MHz定时器 0 示例代码:1void T0DelayNus(UINT16 t) 2 3 rTCFG1 4 rTCFG1 |= 2; 5 rTCNTB0 =(S3C2440PCLK)/8/ 1000000 ; / 时钟频率为 PCLK/8 6 /除以 1000000表示进行微秒级延时7 rTCON 8 rTCON |= (13)|(11)|(10); 9 rTCON 10 11 12while(t-) 13 14while(rTCNTO0!=(rTCNTB0-1);
2、 15 1617 rTCON / 停止定时器 0 18 19 20 21void T0DelayNms(UINT16 t) 22 23 rTCFG1 24 rTCFG1 |= 2; 25 rTCNTB0 =(S3C2440PCLK)/8/ 1000 ; / 时钟频率为 PCLK/8 26 /除以 1000 表示进行毫级延时27 rTCON 28 rTCON |= (13)|(11)|(10); 29 rTCON 3031while(t-) 32 33while(rTCNTO0!=(rTCNTB0-1); 34 3536 rTCON / 停止定时器 0 37定时器 1 示例代码:转载请注明出处,
3、谢谢!1void T1DelayNus(UINT16 t) 2 3 rTCFG1 4 rTCFG1 |= (24); 5 rTCNTB1 =(S3C2440PCLK)/8/ 1000000 ; 6 rTCON 7 rTCON |= (111)|(19)|(18); 8 rTCON 9 10 11while(t-) 12 13 14while(rTCNTO1!=(rTCNTB1-1); 15 16 17 18 rTCON 19 20 21 22 23void T1DelayNms(UINT16 t) 24 25 rTCFG1 26 rTCFG1 |= (24); 27 rTCNTB1 =(S3C2440PCLK)/8/ 1000 ; 28 rTCON 29 rTCON |= (111)|(19)|(18); 30 rTCON 31 32 33while(t-) 34 35while(rTCNTO1!=(rTCNTB1-1); 36 37 38 rTCON 39 40 特别是要注意rTCNTOn与 rTCNTBn的关系。