2052|0

98

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MAX32630FTHR设计笔记(8):定时器的使用(Keil版本) [复制链接]

 (1)定时器资源介绍
MAX32630系列的微控制器单元的定时器资源非常丰富,其定时器可以作为GPIO口的PWM输出,GPIO对应的定时器,如下图

定时器的使用可以输出不同占空比的PWM,也可以作为定时轮询中断触发事件,下面介绍一下定时器的定时中断使用

(2)定时器的初始化,以定时器TM0为例

  1. uint8_t TIM0_Int_Init(uint32_t time_ms)
  2. {
  3.                 int error = 0;
  4.     tmr32_cfg_t cont_cfg;

  5.     uint32_t IntervalTime = time_ms;//ms
  6.     //enable timer interrupt
  7.     NVIC_SetVector(TMR0_0_IRQn, TMR0_IRQHandler);
  8.     TMR32_EnableINT(MXC_TMR0);

  9.     //Setup GPIO to timer output function
  10.     sys_cfg_tmr_t gpio;
  11.     gpio.port = 3;
  12.     gpio.mask = PIN_0;
  13.     gpio.func = GPIO_FUNC_TMR;
  14.     gpio.pad = GPIO_PAD_OPEN_DRAIN;

  15.     //initialize timer and GPIO
  16.     tmr_prescale_t prescale = TMR_PRESCALE_DIV_2_12;
  17.     //error = TMR_Init(MXC_TMR0, prescale, &gpio);
  18.                 error = TMR_Init(MXC_TMR0, prescale, NULL);   //禁止定时器的输出功能
  19.        
  20.     if(error != E_NO_ERROR)
  21.         return error;

  22.     cont_cfg.mode = TMR32_MODE_CONTINUOUS;
  23.     cont_cfg.polarity = TMR_POLARITY_INIT_LOW;        //start GPIO low

  24.     //calculate the ticks values for given time
  25.     error = TMR32_TimeToTicks(MXC_TMR0, IntervalTime, TMR_UNIT_MILLISEC, &(cont_cfg.compareCount));

  26.     if(error != E_NO_ERROR)
  27.         return error;

  28.     //configure and start the timer
  29.     TMR32_Config(MXC_TMR0, &cont_cfg);
  30.     TMR32_Start(MXC_TMR0);

  31.     return error;
  32. }
复制代码


这里我选用P3_0作为定时器TM0,但禁止其输出波形,函数的输入值为定时中断触发事件,单位毫秒


(2)定时器中断
  1. uint8_t buffer[100];
  2. uint16_t ADCValue[1];
  3. void TMR0_IRQHandler()
  4. {
  5.         static uint8_t ADC_GET_Time=0;
  6.         SysTime_Struct.Unit_1ms_CurTime++;
  7.                 ADC_GET_Time++;
  8. LED0_TURN;

  9.                 TMR32_ClearFlag(MXC_TMR0);
  10. }
复制代码


中断触发事件,定时时间到达后,LED灯状态翻转一次


总结:
用KEIL C编写MAX32630程序,好处在于其编程方式雷同STM32编程,很多东西可以一直过来,包括串口,外部中断。因为MAX32630是基于M4内核,STM32F4系列的DSP算法都可以直接移植过来,串口中断触发可以参考帖子串口发送接收函数
点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表