玩转X-CTR100 l STM32F4 l 定时器时间测量

我造轮子,你造车,创客一起造起来!塔克创新资讯【塔克社区 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/ 】
本文介绍X-CTR100控制器 使用处理器内部硬件定时器时间测量功能,可以测量程序代码运行时间。
原理
定时器(Timer)最基本的功能是定时,比如定时发送USART 数据、定时采集AD数据等等。如果把定时器与GPIO 结合起来使用的话可以实现非常丰富的功能,可以测量输入信号的脉冲宽度,可以生产输出波形。定时器生产PWM控制电机状态是工业控制普遍方法,这方面知识非常有必要深入了解。
STM32F407控制器有2 个高级控制定时器、10 个通用定时器和2 个基本定时器。控制器上所有定时器都是彼此独立的,不共享任何资源。

本文使用基础定时器TIM6,实现最基本的时间测量功能。该定时器的主要模块由一个 16 位递增计数器及其相关的自动重载寄存器组成。计数器的 时钟可通过预分频器进行分频。
计数器、自动重载寄存器和预分频器寄存器可通过软件进行读写。即使在计数器运行时也可执行读写操作,框图如下。

例程
本例程实现X-CTR100 TIM6时间测量功能。
硬件说明
硬件资源:
- 串口UART1
硬件连接:
使用MicroUSB数据线连接X-CTR100 COM接口。
软件生态
X-SOFT软件生态,X-API文件如下。
ax_timer.c——X-CTR100 定时器时间测量源文件
ax_timer.h——X-CTR100 定时器时间测量头文件
操作函数如下:
|
void AX_TIMER_TIM6_Init(uint16_t period); //TIM6初始化 void AX_TIMER_TIM6_SetCounter(uint32_t count); //TIM6设置计数器数值 uint32_t AX_TIMER_TIM6_GetCountert(void); //TIM6获取计数器数值 |
AX_TIMER_TIM6_Init()函数可以设置计数周期,单位为us。
软件说明
测量AX_Delayus()函数延时1000us时间,主程序如下。
|
int main(void) { uint32_t tmp;
//X-CTR100初始化 AX_Init(115200); printf("***X-CTR100 舵机控制例程***\r\n\r\n");
//模块初始化及配置 AX_TIMER_TIM6_Init(10); //计数周期1us
//X-API测试:16路舵机控制测试 printf("*16路舵机控制测试\r\n");
while (1) { //测量10us AX_TIMER_TIM6_SetCounter(0); //TIM6 设置计数器数值 AX_Delayus(1000); tmp = AX_TIMER_TIM6_GetCountert(); //获取计数器数值
printf("测量时间:%d us\r\n", tmp); AX_Delayms(1000); } } |
实现效果
运行效果如下图所示。

总结
通过本文学习,掌握X-CTR100控制器 基础定时器的使用。
玩转X-CTR100 l STM32F4 l 定时器时间测量的更多相关文章
- 玩转X-CTR100 l STM32F4 l 舵机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...
- 玩转X-CTR100 l STM32F4 l ADC 模拟数字转换
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 AD转换接 ...
- 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器控制步进电机 ...
- 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器基础板载资源 ...
- 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 板载加速度 ...
- 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...
- 玩转X-CTR100 l STM32F4 l UCOS-III移植
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 概述 前后台系统 简单的小型系统设计一般是基于前后台 ...
- 玩转X-CTR100 l STM32F4 l PS2无线手柄
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...
- 玩转X-CTR100 l STM32F4 l DSP指令集性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 DSP库的 ...
随机推荐
- English trip M1 - PC1 Are you a Model? 你是模特吗? Teacher:Taylor
In this lesson you will learn to talk about jobs. 课上内容(Lesson) What's your partner name? Her name is ...
- 小程序模板中data传值有无...
A:<template is="gemSelectColor" data="{{optionData}}" />B:<template is= ...
- 在linux中要直接查找的命令
- http bass
1.http 是超文本传输协议,是从万维网服务器传输超文本到本地浏览器的传输协议 2.http是一个基于tcp/ip通信协议来传输数据(html,图片,查询结果等) 3.一个完整的http请求包含7个 ...
- Remove Element leetcode java
问题描述: Given an array and a value, remove all instances of that value in place and return the new len ...
- 【PowerDesigner】【8】把Comment复制到name中和把name复制到Comment
原因:这两个字段的值很多时候其实是一样的,重写很麻烦 步骤:打开菜单Tools>Execute Commands>Edit/Run Script.. 或者用快捷键 Ctrl+Shift+X ...
- hdu-5889-最短路+网络流/最小割
Barricade Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- 509. Fibonacci Number斐波那契数列
网址:https://leetcode.com/problems/fibonacci-number/ 原始的斐波那契数列 运用自底向上的动态规划最佳! 可以定义vector数组,但是占用较多内存空间 ...
- 559. Maximum Depth of N-ary Tree C++N叉树的最大深度
网址:https://leetcode.com/problems/maximum-depth-of-n-ary-tree/ 很简单的深度优先搜索 设定好递归返回的条件和值 /* // Definiti ...
- Spring注解之@Import
/** * Indicates one or more {@link Configuration @Configuration} classes to import. * 表示import 一个或多个 ...