微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 测试S3C2440的定时器

测试S3C2440的定时器

时间:11-20 来源:互联网 点击:

  1. /*******************************************
  2. *文件名称:PWM.c
  3. *功能:测试s3c2440的PWM功能
  4. *作者:jianqi
  5. *版本:1.0
  6. **********************************************/
  7. #include"2440addr.h"//包含2440相关寄存器的设置
  8. #include"def.h"
  9. #defineU32unsignedint
  10. //四个LED对应GPB5.6.7.8。
  11. #defineLED15
  12. #defineLED26
  13. #defineLED37
  14. #defineLED48
  15. #defineBit(x)(1
  16. #defineOutput(x)(1<2*x)//将对应IO置为输出
  17. /*******************************************
  18. *名称:Timer0_ISR
  19. *功能:Timer0中断服务程序
  20. *入口参数:无
  21. *出口参数:无
  22. **********************************************/
  23. void__irqTimer0_ISR(void)
  24. {
  25. staticintcount=0;
  26. count++;
  27. rSRCPND=rSRCPND|(0x1<10);
  28. rINTPND=rINTPND|(0x1<10);//每隔2秒LED亮
  29. if(count%4==0)
  30. {
  31. rGPBDAT=~0x1e0;//LED全亮
  32. }
  33. elseif(count%4==1)
  34. {
  35. rGPBDAT=0x1e0;//LED全灭
  36. }
  37. }
  38. /*******************************************
  39. *名称:Time0_init
  40. *功能:Timer0初始化
  41. *入口参数:无
  42. *出口参数:无
  43. **********************************************/
  44. voidTime0_init(void)
  45. {
  46. rTCFG0=249;//250分频
  47. rTCFG1=0x02;//1/8分频,25Khz
  48. rTCNTB0=12500;//定时0.5秒
  49. rTCON=(1<1)|(1<3);//更新TCNTB0,自动重载
  50. rTCON&=~(1<1);//清除手动更新位
  51. }
  52. /*******************************************
  53. *名称:IO_init
  54. *功能:B口初始化
  55. *入口参数:无
  56. *出口参数:无
  57. **********************************************/
  58. voidIO_init(void)
  59. {
  60. rGPBCON=Output(LED1)|Output(LED2)|Output(LED3)|Output(LED4);//LED的IO口置为输出
  61. rGPBDAT=0xffff;//LED全部熄灭
  62. }
  63. /*******************************************
  64. *名称:INT_init
  65. *功能:中断初始化
  66. *入口参数:无
  67. *出口参数:无
  68. **********************************************/
  69. voidINT_init(void)
  70. {
  71. rSRCPND=rSRCPND|(0x1<10);
  72. rINTPND=rINTPND|(0x1<10);
  73. rINTMSK=~(0x1<10);//打开Timer0中断
  74. }
  75. /*******************************************
  76. *名称:Main
  77. *功能:测试PWM功能
  78. *入口参数:无
  79. *出口参数:无
  80. **********************************************/
  81. voidMain(void)
  82. {
  83. IO_init();//初始化IO口
  84. Time0_init();//初始化Timer0
  85. INT_init();//初始化Timer0的中断
  86. pISR_TIMER0=(U32)Timer0_ISR;//注册Timer0中断函数
  87. rTCON|=(1<0);//开始TImer0
  88. while(1);
  89. {
  90. ;
  91. }
  92. }


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top