2805|2

6960

帖子

11

TA的资源

版主

楼主
 

【国民技术N32G430】3、定时器 [复制链接]

 

【目的】配置定时器6,做为系统的tick。本理想用系统的systick来做,但是我需要1ms的计时单位,systick在以后的工程需要用到us延时,所以初始化一下tim6来做系统运行总计时。

1、time6初始化:

void time6_init(void)
{
     /* System Clocks Configuration */
  BSTIMClockFrequency = Common_BSTIM_RCC_Initialize(TIM6, RCC_HCLK_DIV4);
  /* NVIC Configuration */
  Common_TIM_NVIC_Initialize(TIM6_IRQn, ENABLE);
  
  /* Time base configuration, period = 65535, prescaler = prescaler */
  Common_TIM_Base_Initialize(TIM6, 65535, 0);
  TIM_Base_Reload_Mode_Set(TIM6, TIM_PSC_RELOAD_MODE_IMMEDIATE);
  TIM_Interrupt_Enable(TIM6, TIM_INT_UPDATE);
  TIM_On(TIM6);
  
}

2、time6中断函数:

void TIM6_IRQHandler(void)
{
    if (TIM_Interrupt_Status_Get(TIM6, TIM_INT_UPDATE) != RESET)
    {
        TIM_Interrupt_Status_Clear(TIM6, TIM_INT_UPDATE);

        /* Pin PC.06 toggling */
        delay_tick +=1;
        GPIO_Pin_Toggle(GPIOB,GPIO_PIN_6);
    }
}

3、为了方便用示波器观察定时初始化了PB6用来测量超时时间:

void GPIO_Config(void)
{
    GPIO_InitType GPIO_InitStructure;

    GPIO_Structure_Initialize(&GPIO_InitStructure);

    GPIO_InitStructure.Pin        = GPIO_PIN_6;
    GPIO_InitStructure.GPIO_Mode  = GPIO_MODE_OUT_PP;
    GPIO_InitStructure.GPIO_Slew_Rate = GPIO_SLEW_RATE_FAST;

    GPIO_Peripheral_Initialize(GPIOB, &GPIO_InitStructure);
}

4、main函数:

int main(void)
{
   

  /* Configure the GPIO ports */
  GPIO_Config();

  time6_init();
  while(1);


}

5、实验现象:

   用示波器测得一个周期为2.ms,说明每进入一次中断是1ms。这样就得到了一个1ms的计时器。后期用这个计时器产生任务系统的节拍器来使用。

最新回复

看着是一台新普源的示波器 测的波形还行   详情 回复 发表于 2022-9-5 13:41
点赞 关注
 
 

回复
举报

2万

帖子

343

TA的资源

版主

沙发
 

看着是一台新普源的示波器

测的波形还行

点评

这个示波器买了好多年了,一直吃灰,今年终于用上了。。。是做模拟串口时学习用上的。  详情 回复 发表于 2022-9-5 13:49
 
 
 

回复

6960

帖子

11

TA的资源

版主

板凳
 
qwqwqw2088 发表于 2022-9-5 13:41 看着是一台新普源的示波器 测的波形还行

这个示波器买了好多年了,一直吃灰,今年终于用上了。。。是做模拟串口时学习用上的。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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