在线问答
直播中

h1654155865.6393

9年用户 301经验值
擅长:可编程逻辑 测量仪表 嵌入式技术 模拟技术 处理器/DSP 控制/MCU
私信 关注

【OK210试用体验】裸机篇 -- PWM定时器

【OK210试用体验】裸机篇 -- PWM定时器


       本帖为S5PV210的PWM定时器简单实验。



S5PV210的PWM tiMER


具体的PWM资料可参考官方datasheet -- S5PV210_UM_REV1.1 中的sections 07_TIMER。

      S5PV210共有5个32bit的PWM定时器,其中定时器0、1、2、3有PWM功能,定时器4没有输出引脚。 1.png

      S5PV210的PWM定时器的相关I/O: 3.png



      对于定时器,当然需要对时钟的配置,具体的配置可看帖子或者看datasheet的system章的CLOCK节。在S5PV210的PWM TIMER中有介绍到时钟的相关情况还有计算等: 2.png 4.png



程序编写思路


配置PWM TIMER,新增timer_init部分,对于interrupt部分的作用还是很重要,是根基。 5.png

      配置思路:

            1. 计算定时器的输入时钟:Timer Input Clock Frequency = PCLK / ( {prescaler value + 1} ) / {divider value}

            2. 设置预分频系数

            3. 设置TCON

            4. 装载TCNTB、TCMPB0

            5. 使能中断 TINT_CSTAT



       在main.c中
  1. // 初始化VIC
      在中断服务程序中
  1. // timer0中断的中断处理函数
  2. void irs_timer()
  3. {
  4.         unsigned long uTmp;


  5.         //清timer0的中断状态寄存器
  6.         uTmp = TINT_CSTAT;
  7.         TINT_CSTAT = uTmp;      
  8.        
  9.         // 打印中断发生次数
  10.         printf("Timer0IntCounter = %d rn",counter++);
  11.        
  12.         // vic相关的中断清除
  13.         intc_clearvectaddr();
  14. }


实验现象


       6.jpg


更多回帖

发帖
×
20
完善资料,
赚取积分