关于单片机那些事?
周期
时钟周期:也叫振荡周期,就是单片机外接晶振的倒数,如12Mhz,周期就是1/12us,最小的时间单位。频率越高,速度越快
指令周期:执行一条指令需要的时间,一般由若干个机器周期组成
机器周期:一个指令的基本操作(取指,分析,执指)所需要的时间为机器周期,一般由12个时钟周期组成 机器周期 = 12/晶振频率
总线周期:CPU通过总线对外部进行一次访问需要的时间 一个总线周期一般包含4个时钟周期
主频(时钟频率):1秒钟,时钟周期的个数为主频
关于定时器的使用
1、滴答定时器,用于单一定时
rt_tick_t start;
start = rt_tick_get()if(rt_tick_get() - start < 3*1000)
{}
else
{}
2、使用rt_thread_mdelay(),用于多个定时处理
需要创建一个独立的任务,如果需要重新定时,需要删除改线程
rt_thread_t ruigang_output3_thread = RT_NULL; // 用于保存RUIGANG_OUTPUT3线程的句柄
void RUIGANG_OUTPUT3(void *param)
{while(1){if(!pi_in.pi_close && !pi_in.pi_reset && RUIGANG_Flag){contrl_pin(_24V_CNTL3, PIN_HIGH, PenFaTime5Sec);contrl_pin(_24V_CNTL3, PIN_LOW, PenFaTime3Min); contrl_pin(_24V_CNTL3, PIN_HIGH, PenFaTime3Sec);contrl_pin(_24V_CNTL3, PIN_LOW, PenFaTime5Min);rt_pin_write(_24V_CNTL3, PIN_HIGH);rt_thread_mdelay(PenFaTime5Min*60);}else{continue;}rt_thread_mdelay(10);}
}if (ruigang_output3_thread != RT_NULL){rt_thread_delete(ruigang_output3_thread); // 删除当前线程}ruigang_output3_thread = rt_thread_create("RUIGANG_OUTPUT3",RUIGANG_OUTPUT3,RT_NULL,1024,PRIORITY_OUT3,10);if (ruigang_output3_thread != RT_NULL){rt_thread_startup(ruigang_output3_thread); // 启动新线程}
3、软件定时器 1秒定时器 时间到了 会自用调用 回调函数
用于单一定时
#include <rtthread.h>// 定时器的回调函数
static void timer_callback(void* parameter)
{rt_kprintf("Timer tick\n");
}int main(void)
{// 定义定时器句柄rt_timer_t timer;// 创建软件定时器timer = rt_timer_create("mytimer", // 定时器名称timer_callback, // 定时器到期时调用的回调函数RT_NULL, // 传给回调函数的参数rt_tick_from_millisecond(1000), // 定时周期,单位为tick。这里使用1秒作为周期。RT_TIMER_FLAG_PERIODIC | RT_TIMER_FLAG_SOFT_TIMER); // 定时器标志:周期性和软件定时器// 判断定时器是否创建成功if (timer != RT_NULL){// 启动定时器rt_timer_start(timer);}return 0;
}
相关文章:
关于单片机那些事?
周期 时钟周期:也叫振荡周期,就是单片机外接晶振的倒数,如12Mhz,周期就是1/12us,最小的时间单位。频率越高,速度越快 指令周期:执行一条指令需要的时间,一般由若干个机器周期组成 …...
第5章 传输层
王道学习 考纲内容 (一)传输层提供的服务 传输层的功能:传输层寻址与端口;无连接服务和面向连接服务 (二)UDP UDP数据报;UDP检验 (三)TCP …...
典型传感器简介及驱动安装
双目视觉传感器 Indemind 传感器简介 INDEMIND M1 是专为开发者提供的一款硬件,采用“双目摄像头IMU”多传感器融合架构与 微秒级时间同步机制,为视觉 SLAM 研究提供精准稳定数据源,以满足 SLAM 研究、导航及 避障开发、视觉动作捕捉开发、…...
linux和Win——显卡驱动、Anaconda及pytorch安装(无需单独安装cuda、cudnn)
今天给新电脑的双系统(windows11和ubuntu22.04)安装了深度学习环境,在此记录一下。 一、Linux系统 (一)安装显卡驱动 (1)在安装Nvidia显卡驱动前,一定要点一下下面的“软件更新器…...
机器学习之多模态学习FLAVA(Foundational Language and Vision Alignment)
FLAVA(Foundational Language and Vision Alignment)是Meta AI提出的一种多模态学习模型,旨在处理自然语言和视觉任务。FLAVA通过联合学习文本和图像的特征表示,实现了在多模态任务上的优异性能。 FLAVA的基本概念 多模态学习: 多模态学习涉及同时处理多种类型的数据,例…...
Maven高级-证书校验
文章目录 SSL忽略配置IDEA里配置SSL忽略补充场景 SSL忽略配置 mvn -X clean install -Dmaven.resolver.transportwagon -Dmaven.wagon.http.ssl.insecuretrue -Dmaven.wagon.http.ssl.allowalltrue -Dmaven.wagon.http.ssl.ignore.validity.datestrueIDEA里配置SSL忽略 两个地…...
flutter是app跨平台最优解吗?
哈喽,我是老刘 最近在知乎上看到这样一个问题 我们先来解释一下问题中碰到的几个现象的可能原因,然后聊聊跨平台的最优解问题 问题解释 1、跟手、丝滑问题 这个问题其实很多人是有误解的,觉得原生的就丝滑跟手 其实不是这样的 我在做Flut…...
算法 Hw9
Hw 9 1 Scheduling with profits and deadlines12345 2 Parallel machine1234 1 Scheduling with profits and deadlines 1 决策问题表述: 给定一个利润值 P P P,是否存在一个任务调度方案使得完成所有任务的总利润至少为 P P P 2 在 NP 类中&…...
前端JS必用工具【js-tool-big-box】学习,字符串字母大小写转换的方法使用
这一小节,我们说一下 js-tool-big-box 工具库中,字符串字母大小写转换的使用。请注意:不是说单纯的把字符串转为大写,或者小写。关注 js-tool-big-box 的小伙伴可能知道,我们并没有把一些特别基础的,JS原生…...
Zookeeper:分布式系统中的协调者
Zookeeper:分布式系统中的协调者 前言:引言Zookeeper是什么? 基本概念Zookeeper 数据模型Znode 类型会话Watcher 应用场景分布式锁配置维护组服务名字服务 典型应用场景数据发布/订阅负载均衡命名服务分布式协调/通知集群管理Master选举 工作…...
如何使用代理IP进行数据抓取,PHP爬虫抓取京东商品数据
使用代理IP进行数据抓取通常是为了绕过IP封锁、提高抓取效率或保护你的真实IP地址。在PHP中,你可以使用cURL库来发送HTTP请求,并通过设置cURL选项来使用代理IP。 以下是一个基本的步骤说明,展示如何使用PHP和cURL库结合代理IP来抓取京东商品…...
一口气安装【Python】教程
浏览器搜索python,或者直接跳转网址。 https://www.python.orghttps://www.python.org/ 找到想下载的版本 根据自己电脑下载相应的版本 自定义安装 下一步 修改路径,然后点击安装 等待一会,喝个饮料 点击关闭 安装成功 安装结束...
华为HCIP Datacom H12-821 卷13
1.多选题 以下关于二层漫游和三层漫游的描述,以下说法正确的是? A、如果 STA 漫游时前后关联的 VLAN ID 相同则一定属于二层漫游 B、二层漫游是指客户端在同一子网内漫游 C、三层漫游是指客户端在不同子网间漫游 D、三层漫游前后 STA 关联的 AP 服务集上的 VL AN 必须相…...
基于SSM的酒店客房管理系统
基于SSM的酒店客房管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅获取项目下载方式🍅 链接点击直达:下载…...
【数据结构与算法】最短路径,Floyd算法,Dijkstra算法 详解
Floyd算法 for (int k 0; k < n; k) {for (int i 0; i < n; i) {for (int j 0; j < n; j) {if (d[i][k] ! INF && d[k][j] ! INF) {d[i][j] min(d[i][j], d[i][k] d[k][j]);}}} }Dijkstra算法(基于最小堆) void dijkstra(int st…...
PHP中如何进行网络爬虫和数据抓取?
随着互联网时代的到来,网络数据的爬取与抓取已成为许多人的日常工作。在支持网页开发的程序语言中,php以其可扩展性和易上手的特点,成为了网络爬虫和数据抓取的热门选项。本文将从以下几个方面介绍php中如何进行网络爬虫和数据抓取。 一、HT…...
【Hadoop集群搭建】实验3:JDK安装及配置、Hadoop本地模式部署及测试
1. 安装 SSH 工具 SSH Secure Shell Client 传输软件 FinalShell(推荐使用) 1.1使用SSH工具将JDK安装包上传至虚拟主机hadoop01, hadoop02, hadoop03,sogou500w 数据上传至 hadoop01。 a. 在虚拟主机/usr 目录下创建文件夹 java,JDK 上传至此目录&…...
分布式锁在Spring Boot应用中的优雅实现
在现代微服务架构中,分布式锁是一种常用的技术手段,用于确保在分布式系统中,同一时间只有一个服务实例能够执行某个特定的操作。这对于防止并发问题、保证数据一致性至关重要。在Spring Boot应用中,我们可以通过自定义注解和切面的…...
常用框架-Spring Boot
常用框架-Spring Boot 1、Spring Boot是什么?2、为什么要使用Spring Boot?3、Spring Boot的核心注解是哪个?它主要由哪几个注解组成的?4、有哪些运行Spring Boot的方式?5、如何理解 Spring Boot 中的Starters?6、有哪些常见的Starters?7、如何在Spring Boot启动的时候运…...
AttributeError: module ‘cv2‘ has no attribute ‘face‘
Traceback (most recent call last): File "D:\AI_37\pythonProject7\day23\课堂代码\day23\07-人脸识别.py", line 4, in <module> recognizer cv2.face.LBPHFaceRecognizer_create() ^^^^^^^^ AttributeError: module cv2 has no at…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
