STM8S003F3P6定时器输入捕获和输出比较

2024-09-03 15:28

本文主要是介绍STM8S003F3P6定时器输入捕获和输出比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

输入捕获定时器初始化

#include "tim1.h"
#include "common.h"
#include "stm8s.h"
/*** @brief  Configure TIM1 16mhz* @param  None* @retval None*/
void STM8_TIM1_Init(void) /* 定时器1初始化 ,配置为输入捕获 测频率和脉宽 */
{// 16分频         16M/(0x0f)=1M   CNTR计数一次为 1/1M=1usTIM1_TimeBaseInit( 0x0f, TIM1_COUNTERMODE_UP, 0xffff, 0 ); TIM1_ICInit( TIM1_CHANNEL_1, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI, TIM1_ICPSC_DIV1, 0x0a );TIM1_ICInit( TIM1_CHANNEL_2, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI, TIM1_ICPSC_DIV1, 0x0a );TIM1_ICInit( TIM1_CHANNEL_3, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI, TIM1_ICPSC_DIV1, 0x0a );TIM1_ITConfig( TIM1_IT_CC1, ENABLE );TIM1_ITConfig( TIM1_IT_CC2, ENABLE );TIM1_ITConfig( TIM1_IT_CC3, ENABLE );//    TIM1_ITConfig( TIM1_IT_UPDATE, ENABLE );TIM1_Cmd(DISABLE );TIM1_ClearITPendingBit( TIM1_IT_CC1 );TIM1_ClearITPendingBit( TIM1_IT_CC2 );TIM1_ClearITPendingBit( TIM1_IT_CC3 );
}

输入捕获定时器中断函数

捕获2个周期以获得频率、周期、占空比

//TIM1_CH1-CH3通道捕获
void TIM1_ISR_Capture( void )
{static uint16_t overload=0;  //定时器溢出计数/* 输入捕获 */if (TIM1_GetITStatus(TIM1_IT_CC1) != RESET){/* CH1 */static uint8_t ch1_cc_bz = 0;uint16_t  ch1_ICValue = 0;uint16_t  ch1_ICValue1 = 0;static uint16_t ch1_num1;static uint16_t ch1_num2;static uint16_t ch1_num3;static uint16_t ch1_num4;switch(ch1_cc_bz){case 0://  TIM1_SetCompare1( 0 );ch1_num1 = TIM1_GetCapture1();TIM1->CCER1 &= (uint8_t)(~TIM1_CCER1_CC1P);//设为上升沿捕获ch1_cc_bz = 1;break;case 1:ch1_num2 = TIM1_GetCapture1(

这篇关于STM8S003F3P6定时器输入捕获和输出比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133340

相关文章

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

Java异常捕获及处理方式详解

《Java异常捕获及处理方式详解》异常处理是Java编程中非常重要的一部分,它允许我们在程序运行时捕获并处理错误或不预期的行为,而不是让程序直接崩溃,本文将介绍Java中如何捕获异常,以及常用的异常处... 目录前言什么是异常?Java异常的基本语法解释:1. 捕获异常并处理示例1:捕获并处理单个异常解释:

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

MySQL中比较运算符的具体使用

《MySQL中比较运算符的具体使用》本文介绍了SQL中常用的符号类型和非符号类型运算符,符号类型运算符包括等于(=)、安全等于(=)、不等于(/!=)、大小比较(,=,,=)等,感兴趣的可以了解一下... 目录符号类型运算符1. 等于运算符=2. 安全等于运算符<=>3. 不等于运算符<>或!=4. 小于运

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析