[DemoCode下载] M051定时器3 周期模式测试程序

[复制链接]
 楼主| 发表于 2016-1-17 20:38 | 显示全部楼层 |阅读模式
  1. #include "SmartM_M0.h"
  2. UINT32 i =0;
  3. /****************************************
  4. *函数名称:TMR3Init
  5. *输    入:无
  6. *输    出:无
  7. *功    能:定时器3初始化
  8. ******************************************/
  9. VOID TMR3Init(VOID)
  10. {
  11.     PROTECT_REG
  12. (
  13.   /* 使能TMR0时钟源 */
  14.      APBCLK |= TMR3_CLKEN;
  15.   /* 选择TMR0时钟源为外部晶振12MHz */
  16.   CLKSEL1 = (CLKSEL1 & (~TM3_CLK)) | TM0_12M;
  17.   /* 复位TMR3 */
  18.   IPRSTC2 |=  TMR3_RST;
  19.   IPRSTC2 &= ~TMR3_RST;
  20.   /* 选择TMR3的工作模式为周期模式*/
  21.   TCSR3 &= ~TMR_MODE;
  22.   TCSR3 |=  MODE_PERIOD;  
  23.   /* 溢出周期 = (Period of timer clock input) * (8-bit Prescale + 1) * (24-bit TCMP)*/
  24.    /* 溢出周期 = (1/12MHz) * (0 + 1) * (12000*500)=500ms (0.5S)*/
  25.   TCSR3  = TCSR3 & 0xFFFFFF01;  // 设置预分频值 [0~255]
  26.   TCMPR3 = 12000*500;        // 设置比较值 [0~16777215]
  27.   TCSR3 |= TMR_IE;     //使能TMR0中断
  28.   NVIC_ISER |= TMR3_INT;
  29.   TCSR3 |= CRST;      //复位TMR0计数器   
  30.   TCSR3 |= CEN;      //使能TMR0
  31. )
  32. }
  33. /****************************************
  34. *函数名称:main
  35. *输    入:无
  36. *输    出:无
  37. *功    能:函数主体
  38. ******************************************/
  39. INT32 main(VOID)
  40. {
  41.      PROTECT_REG            //ISP下载时保护FLASH存储器
  42.   (      
  43.    PWRCON |= XTL12M_EN;      //默认时钟源为外部晶振
  44.    while((CLKSTATUS & XTL12M_STB) == 0);   //等待12MHz时钟稳定      
  45.    CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //设置外部晶振为系统时钟
  46.    P2_PMD = 0x5555;       //P2口设置为输出模式
  47.       P2_DOUT= 0x00;        //P2口输出低电平
  48.   )
  49.   TMR3Init();  
  50.   while(1)
  51.   {
  52.    if(i > 7)
  53.    {
  54.       i = 0;
  55.    }
  56.   }
  57. }
  58. /****************************************
  59. *函数名称:TMR3_IRQHandler
  60. *输    入:无
  61. *输    出:无
  62. *功    能:定时器3中断服务函数
  63. ******************************************/
  64. VOID TMR3_IRQHandler(VOID)
  65. {
  66. /* 清除TMR3中断标志位 */
  67. TISR3 |= TMR_TIF;
  68.     P2_DOUT = 1UL<<i;         //P2口输出相应的电平
  69. i++;
  70. }


发表于 2016-1-18 20:36 | 显示全部楼层
如果用定时器触发ad采样的话该如何设置呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

1488

帖子

5

粉丝
快速回复 返回顶部 返回列表