【微机及接口技术】- 第七章 可编程定时/计数器
文章目录
- 第一节 定时/计数器的概述
- 一、定时与计数
- 二、定时方法
- 第二节 可编程定时/计数器8254
- 一、8254-2的基本功能
- 二、8254的内部结构和外部引脚
- 三、8254 的工作方式
- 1. 方式0:计数到零产生中断方式
- 2. 方式1:硬件可重触发单稳方式
- 3. 方式2:速率波发生器/n分频方式
- 4. 方式3:方波发生器
- 5. 方式4:软件触发选通
- 6. 方式5:硬件触发选通
- 四、8254的控制字
- 1. 方式控制字
- 2. 读出控制字
- 3. 状态字
- 五、8254的编程
- 1. 初始化编程
- 2. 工作编程
- 第三节 8254的应用
- 一、8254在微机中的应用
本章考试重点
- 8253/8254的工作方式
- 8253/8254的初始化
- 8253/8254的应用
第一节 定时/计数器的概述
一、定时与计数
在微机系统中,定时/计数的功能主要包括:
以均匀分布的时间间隔中断分时操作系统以切换程序;
向I/O设备输出精确的定时信号,如都键盘 时延去抖;
检测外部事件发生的频率或周期,如CPU风扇转速测量;
统计外部某过程中某一事件发生的次数,如高速公路上车流量的统计等。
二、定时方法
3种:软件定时、不可编程硬件定时、可编程硬件定时。
1)软件定时
执行一段固定的循环程序实现延时;
缺点:占用CPU事件,降低CPU利用率;
2)不可变成硬件定时
采用中小规模IC构成定时电路,如555定时器;
电路简单、不占用CPU事件,定时值固定;
3)可编程硬件定时
在 2)电路基础上改进,定时值和可由软件改变。
可编程定时/计数器电路的典型结构框图
需要它计数时,需要给一个计数初值,这个值放到计数初值寄存器中。同时这个数进入计数器工作单元,对这个计数初值进行检验计数,计数器的当前计数会同时输入到输出锁存器当中。
计数器工作单元计数计到0时,会对OUT有一个输出值变化
第二节 可编程定时/计数器8254
一、8254-2的基本功能
有 3 个独立的16位计数器;
每个计数器可按二进制或十进制计数;
每个计数器可编程工作于6种不同工作方式;
8254-2每个计数器的最高频率10MHz (8253:2MH,8253-5和8254-5:5MHz, 8254:8MH);
8254有读回命令(8253没有),除了可以读出当前计数单元内容外,还可以读出状态寄存器内容。
二、8254的内部结构和外部引脚
8254内部结构框图
数据总线缓冲器 8位双向三态,CPU 读取内部状态值/写入控制字 通过此缓冲器
读/写控制逻辑 寻址
控制字寄存器 寄存器工作方式
3个16位计数器相互独立,结构和功能完全相同。
计数器内部结构
写入计数初值 写入 CR , 也会同时进入减1计数器,减至0会有OUT信号变化,CE减到什么值,OL都会实时保存变化。
8254外部引脚图
D0-D7 数据线 和 CPU数据线连接,双向三态,CPU读取写入都是通过这8条数据线
A0,A1 用来选择内部寄存器地址,4个寄存器
CLK0 OUT0 GATE0 为计数器0,CLK时钟输入,GATE 门控信号,OUT输出信号
计数器1,2同理
三、8254 的工作方式
6 种工作方式区别在于:输出波形不同,启动计数器的触发方式不同、门控信号对计数操作影响不同。
工作过程:
- 先写控制字至控制字寄存器,以选择工作方式;
- 再向CR写入计数初值(二:0000H-FFFFH,十:0000H-9999);二进制最大值65536和十进制最大计数值10000
- 最后在GATE信号控制下,对CLK脉冲计数。
CR计数初值寄存器
1. 方式0:计数到零产生中断方式
典型的事件计数法,当CE计数至零时,OUT信号由低变高,可作为中断请求信号。
特点:
1)计数由软件启动,每次写入计数初值,只启动一次计数。计数到零后,不重新计数,OUT保持高电平。再次写入计数初值,OUT变低重新计数。
2)CPU写计数初值的/WR信号上升沿,把初值写入CR,在下一个CLK脉冲下降沿才将CR内容装入CE,开始计数。
3)计数中,若GATE=0则暂停技术,至GATE变1后接着计数。
4)计数过程中可写入新的计数初值。从写入后的下一个时钟脉冲开始以新值计数。
8位计数,写入低字节即按新值计数;
16位计数,写入第一个字节,停止计数,写入第二字节 后按新值计数。
工作方式0波形图
2. 方式1:硬件可重触发单稳方式
由外部门控脉冲(硬件)启动计数。
特点:
1)写入控制字后,OUT输出高,写入计数初值后OUT仍为高,GATE启动后,OUT变低,每来一个CLK,计数减1,减至0则OUT变高。
2)允许多次触发。计数器未减到0时,GATE又来一个正脉冲,计数初值将重装计数器,从初值重新减1计数。
3)计数过程中可装入新的计数初值,当GATE再次出现0-1跃变后,计数器才按新的计数值减1计数。
3. 方式2:速率波发生器/n分频方式
计数器“初值自动重装”,输出固定频率脉冲
特点:
1)写入控制字后,OUT输出高,写入计数初值n后,如果GATE为高,则计数器减1计数;计数值减到1时,OUT变低,维持一个CLK周期又变高,且n重装。OUT端脉冲为CLK的n分频信号。
2)计数中若GATE变低则停止计数,GATE上升沿使计数器恢复初值,从初值减1计数。
3)计数中若GATE为高,则写入新的计数值,不影响当前计数,计数器减到1后才装入新计数值。
4. 方式3:方波发生器
作为波特率发生器,有初值重装功能。
特点:
1)写入控制字后,OUT输出高,写入计数初值n,若GATE为高,则在下一个CLK脉冲下降沿,开始计数。
2)计数初值为偶数,则每来一个CLK脉冲计数值减2;减到0时,输出端改变极性,初值重装继续计数;输出端为1:1方波,正脉冲和负脉冲为n/2的CLK周期。
3)计数初值为奇数,在OUT变高的瞬间将CR内的初值减1后装入CE,开始减2计数。
4)GATE变低停止计数,同方式2。
5)写入新的计数值,同方式2。
5. 方式4:软件触发选通
与方式0很像
特点:
1)写入控制字,OUT输出高,若当前GATE为高,写入计数初值后减1计数,减到0时OUT变低,OUT端输出一个宽度等于一个CLK脉冲周期的负脉冲。
2)计数中GATE变低则停止计数,GATE上升沿使计数值恢复初值,并从初值减1计数。
3)计数中若改变计数值,则按新值开始计数。
6. 方式5:硬件触发选通
与方式1相似
1)写入控制字后,OUT输出高。写入计数初值后,只有GATE端出现0-1跃变,初值才能装入计数器,减1计数,减为0时,OUT输出一个CLK周期负脉冲。
2)计数中,若GATE再次出现0-1,则计数初值重新装入计数器,减1计数。
3)计数中,如果改变初值,若没有GATE上升沿则不影响计数,若有,按新的初值重新计数。
四、8254的控制字
方式控制字:设置计数器的工作方式。
读回控制字:设置读回命令。
两个控制字共用一个地址,由标识位区分。
1. 方式控制字
8254 控制字格式
(1)计数器选择D7D6
00,0号计数器;01,1号;10,2号
11,读出控制字标志之一(8253无)
(2)读/写格式选择D5D4
00,锁存计数器的当前计数值,以便读出
01,写入时只写低8位计数初值LSB,高8位置零。读出时,只能读出低8位的当前计数值。
10,写入时致谢高8位计数初值MSB,低8位置0。读出时,只能读出高8位当前计数值。
11,先读/写低8位计数值,后读写高8位计数值。
(3)工作方式选择D3D2D1
000,方式0;001,方式1;X10,方式2;X11,方式3;100,方式4;101,方式5
(4)计数数制选择D0
0,二进制,0000-FFFFH, 0H代表65536
1,二-十进制,0000-9999H,0H代表十进制数10000
2. 读出控制字
读出控制字格式
D7,D6 固定为1
D5:0,锁存计数值,以便CPU读取
D4:0,状态信息锁存入状态寄存器
CPU读取某一计数器的计数值/状态信息,该计数器解锁其他计数器不受影响。
后三位 000 计数器0
010 计数器1
100 计数器2
3. 状态字
D7:OUT的输出状态,0 低电平,1 高电平
D6:0,计数初值已存入,可读取计数器。
D5-D0:与方式控制字的对应位意义相同。
五、8254的编程
8254复位后3计数器OUT引脚均为低,寄存器状态未知。初始化编程,工作编程。
1. 初始化编程
包括两方面:
一、向控制字寄存器写入方式控制字;
二、向所使用的计数器写入计数初值;
【例题】试使用8254-2的计数器0做频率4khz的方波发生器,8254的端口地址为40H-43H,fclk0 = 12MHz。
方式控制字 计数器0,方波 方式3 CR = 12MHz/4KHz = 3000
MOV AL,00110111B
OUT 43H,AL ; 写控制字,定义计数器0工作于方式3,使用16位BCD计数
MOV AX,3000H
OUT 40H,AL ; 为计数器0送初值,先送低8位。
MOV AL,AH ; 交换一下
OUT 40H,AL; 为计数器0送初值,后送高8位
2. 工作编程
(1)改变计数器初值
(2)读取当前计数值和当前状态
- 1)向控制字寄存器写入方式控制字D7D6=计数器编号、D5D4=00锁存当前计数值,再对读相应的计数器端口。
- 2)向控制字寄存器写入读回命令-读出控制字:
如果读回命令仅锁存相应计数器的状态信息,则相应计数器端口进行一次读操作即可读出状态信息。
如果读回命令仅锁存相应计数器的当前计数值,则对相应计数器端口进行读操作。若初值16位,则先读计数值的低8位,再读高8位。
如果读回命令同时锁存当前计数值和状态信息,则对相应计数器端口执行两次读操作,第一次读出状态信息,第二次读出当前计数值(初值为8位的情况,16位则读3次)
【例题】设8254端口地址为40H-43H,试读出计数器2的当前计数值。
使用锁存命令程序
MOV AL,10000000B ; D3-D0为任意
OUT 43H, AL ;锁存计数器2的当前计数值
IN AL,42H ; 读计数器2的当前计数值低8位
MOV AH,AL
IN AL,42H ; 读计数器2的当前计数值高8位
XCHG AH,AL ; AX中位计数器2当前计数值
第三节 8254的应用
一、8254在微机中的应用
PC系列机的定时系统结构框图
- 计数器0-系统计时器
系统利用计数器0完成日时钟计数。 - 计数器1-动态存储器定时刷新控制字
计数器1专门用作动态存储器刷新的定时控制 - 计数器2-扬声器音频发生器
计数器2为系统机箱内的扬声器发声提供音频信号,进行故障报警等。
【例】8254的CLK0的时钟频率时8Khz,问:
1)T/C0最大定时时间是多少?
2)如果8254端口地址为90H、92H、94H、96H,现要求使用该8254产生周期为9s、占空比为4:9的方波,请完成电路,编写初始化程序。
【答案】
1)TCLK0 = 1/fclk0 =1/8KHz = 0.125ms
最大定时时间=65536x0.125ms=8.192s
2)要求输出4:9的方波,低电平4s,高电平5s。可利用方式3计数初值为奇数,其特点是高电平比低电平多一个时钟周期。因此,可利用计数器0产生1hz的方波,作为计数器1的CLK,让计数器1的初值为9,这样就得到占空比为5:9的方波,再通过一个反相器,即得到周期为9s占空比为4:9的方波,初始化程序如下:
MOV AL,00110111; 0号计数器、方式3、二-十进制计数
OUT 96H,AL
MOV AX,8000H
OUT 90H,AL ; 向计数器0送计数初值,产生1hz的方波
MOV AL,AH
OUT 90H,AL
MOV AL,01010111B; 计数器1、只写低8位初值、方式3、二-十进制
OUT 96H, AL
MOV AL,9H
OUT 92H,AL
电路示意图
OUT0 输出作为CLK1的脉冲
OUT1 加上反相器
相关文章:
【微机及接口技术】- 第七章 可编程定时/计数器
文章目录 第一节 定时/计数器的概述一、定时与计数二、定时方法 第二节 可编程定时/计数器8254一、8254-2的基本功能二、8254的内部结构和外部引脚三、8254 的工作方式1. 方式0:计数到零产生中断方式2. 方式1:硬件可重触发单稳方式3. 方式2:速…...
MES生产工单管理系统,Java+Vue,含源码与文档,实现生产工单全流程管理,提升制造执行效率与精准度
前言: MES生产工单管理系统是制造业数字化转型的核心工具,通过集成生产、数据、库存等模块,实现全流程数字化管理。以下是对各核心功能的详细解析: 一、生产管理 工单全生命周期管理 创建与派发:根据销售订单或生产计…...
【区块链安全 | 第三十五篇】溢出漏洞
文章目录 溢出上溢示例溢出漏洞溢出示例漏洞代码代码审计1. deposit 函数2. increaseLockTime 函数 攻击代码攻击过程总结修复建议审计思路 溢出 算术溢出(Arithmetic Overflow),简称溢出(Overflow),通常分…...
【自记录】ubuntu命令行下禁用指定声卡
设备上内置了一块声卡,出于某些原因我希望禁用他。 通过arecord -l可以查看到该设备 $ arecord -l **** List of CAPTURE Hardware Devices **** card 0: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]Subdevices: 1/1Subdevice #0: subdevice…...
设计模式 Day 4:观察者模式(Observer Pattern)深度解析
在经历了前三天的对象创建型设计模式学习之后,今天我们开始进入行为型设计模式的探索之旅。行为型模式聚焦于对象之间的通信机制与协作方式,其中最经典且应用最广泛的就是——观察者模式(Observer Pattern)。本文将用8000字篇幅&a…...
`QTabWidget` 的标签页头设置样式,可以通过在 QSS 文件中定义 `QTabBar::tab` 的样式
要为 QTabWidget 的标签页头设置样式,可以通过在 QSS 文件中定义 QTabBar::tab 的样式来实现。以下是完整的代码示例和 QSS 文件内容,展示如何为标签页头设置背景颜色、文本颜色、悬停效果和选中效果。 ### **代码示例** cpp #include <QApplication…...
低代码开发革命:用 ZKmall开源商城可视化逻辑编排实现业务流程再造
ZKmall开源商城通过可视化逻辑编排引擎与低代码开发范式,重新定义了企业级电商业务流程的构建与优化方式。本文将从技术架构、核心能力、实践案例及行业价值等维度,解析其如何以"低代码流程引擎"组合拳实现业务流程再造的革命性突破。 一、低代…...
CAN外设
目录 1. CAN外设结构 1.1 CAN外设发送流程 1.2 CAN外设接收流程 1.3 发送接受配置位 2. CAN外设过滤器 2.1 过滤器配置 2.2 测试模式 2.3 工作模式 2.4 过滤器对应中断 2.5 错误处理和离线恢复 1. CAN外设结构 以STM32F103为例。以下是它的内部结构框图。 其具体发…...
(七)安卓开发中的状态列表图形(StateListDrawable)详解
在安卓开发中,**状态列表图形(StateListDrawable)**是一种非常实用的资源,它允许开发者根据视图的不同状态(如按下、聚焦、选中等)来动态显示不同的图像或颜色。这种机制在创建交互式用户界面时尤为重要&am…...
2023年蓝桥杯第十四届CC++大学B组真题及代码
目录 1A:日期统计 解析代码_暴力_正解 2B:01串的熵 解析代码_暴力_正解 3C:冶炼金属 解析代码_暴力_正解 4D:飞机降落 解析代码_暴力dfs_正解 5E:接龙数列 解析代码_dp_正解 6F:岛屿个数 解析代…...
odo18实施——销售-仓库-采购-制造-制造外包-整个流程自动化单据功能的演示教程
安装模块 安装销售 、库存、采购、制造模块 2.开启外包功能 在进入制造应用点击 配置—>设置 勾选外包,点击保存 添加信息 一、添加客户信息 点击到销售应用 点击订单—>客户 点击新建 创建客户1,及其他客户相关信息,点…...
c++造轮子之REACTOR实战
本文实现的为单reactor 多线程(base) 非核心库 InetAddress 这个库简单而言 无疑是设置ip地址和端口 class InetAddress { public:struct sockaddr_in addr;socklen_t addr_len;InetAddress();InetAddress(const char* ip, uint16_t port);~InetAddress(); };具体而言: Ine…...
【Easylive】Elasticsearch搜索组件详解
【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 一、Elasticsearch基础介绍 Elasticsearch(简称ES)是一个分布式、RESTful风格的搜索和分析引擎,基于Apache Lucene构建。在视频平台中,它主要用于: 全…...
基于AT89C51单片机的加减乘除液晶计算机设计
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/90574816?spm1001.2014.3001.5503 功能介绍: 可进行最高四位数的加减乘除运算,除法运算保留小数点后四位;4*4矩阵按键输入&…...
先进制造aps专题三十三 开源aps产品,frepple和dream对比分析
开源的两个aps产品,frepple和dream对比分析 frepple开源的基本不能用,第一它甘特图没开源,而且甘特图不允许你手工个修改,你想把它当成手工甘特图用也不行,第二,算法强制倒排,很少企业是倒排 …...
Vue3.2 项目打包成 Electron 桌面应用
本文将详细介绍如何将基于 Vue3.2 的项目打包成 Electron 桌面应用。通过结合 Electron 和 Vue CLI 工具链,可以轻松实现跨平台桌面应用的开发与发布。 1. 项目结构说明 项目主要分为以下几个部分: electron/main.js:Electron 主进程文件。…...
第16届蓝桥杯单片机模拟试题Ⅰ
试题 代码 sys.h #ifndef __SYS_H__ #define __SYS_H__#include <STC15F2K60S2.H> //onewire.c float getT(); //sys.c extern unsigned char UI; extern bit touch_mode; extern float jiaozhun; extern float canshu; extern float temper; void init74hc138(unsigned…...
ES:geoip_databases
如何查看 .geoip_databases 的内容 在Elasticsearch中,.geoip_databases 是一个特殊的索引,用于存储GeoIP数据库文件。这些文件通常用于地理信息的丰富(GeoIP enrichment)。以下是如何查看和管理这些数据库文件的方法:…...
企业级开发SpringBoost玩转Elasticsearch
案例 Spring Boot 提供了 spring-data-elasticsearch 模块,可以方便地集成 Elasticsearch。 下面我们将详细讲解如何在 Spring Boot 中使用 Elasticsearch 8,并提供示例代码。 1. 添加依赖: 首先,需要在 pom.xml 文件中添加 spring-data-e…...
边缘计算网关作用
一、数据采集与预处理 边缘计算网关作为物联网系统的“数据入口”,能够连接各种传感器和设备,实时采集数据。在数据传输到云端之前,它会对数据进行清洗、过滤和聚合,剔除重复、无效或冗余的信息,只将有价值的数据上传…...
利用本地 Express Web 服务解决复杂的 Electron 通信链路的问题
背景 Web 服务对前端同学来说并不陌生,你们开发其他前端界面请求的后端接口就是 Web 服务,你们 npm run dev启动的也是一个本地的 Web 服务,前端的 js,html,css 都有从这个服务上拉取到的资源。 我们在开发 Electron…...
《自然-计算科学》诚邀您投稿计算社会科学研究(computational social science)
李升伟 编译 近年来,运用计算方法和工具来深化对社会科学长期议题理解的"计算社会科学"发展迅猛。这一增长主要得益于社交媒体数据、移动通信数据、数字化图书与历史档案、医疗记录等海量数据的涌现,这些资源不仅为验证现有社会科学理论提供了…...
【SPSS/EXCEl】主成分分析构建__综合评价指数
学习过程中实验操作的记录 1.数据准备和标准化: (1)区分正负相关性:判断每个因子是正向指标还是负向指标,计算每个的最大值和最小值 (2) 标准化: Min-Max标准化 Min-Max标准化(最大最小值法): 将数据映射到指定的区间ÿ…...
#node.js后端项目的部署相关了解
熟悉 Spring Boot 的 java -jar 启动方式,那咱们就用类比 实战方式,来彻底搞懂: 🚀 Node.js 后端项目的 部署 & 启动方式 ✅ 和 Spring Boot 的 java -jar xxx.jar 一样,Node.js 也可以一句命令启动,而…...
程序化广告行业(69/89):DMP与PCP系统核心功能剖析
程序化广告行业(69/89):DMP与PCP系统核心功能剖析 在数字化营销浪潮中,程序化广告已成为企业精准触达目标受众的关键手段。作为行业探索者,我深知其中知识的繁杂与重要性。一直以来,都希望能和大家一同学习…...
基于Python的二手房数据挖掘与可视化深度分析
一、技术框架与数据概况 1.1 技术栈构成 import pandas as pd # 数据操作(v1.3.5) import numpy as np # 数值计算(v1.21.6) from pyecharts.charts import * # 交互式可视化(v1.9.1) from sklearn.preprocessing import StandardScaler # 数据标准化(可选扩展) …...
linux第三次作业
1、将你的虚拟机的网卡模式设置为nat模式,给虚拟机网卡配置三个主机位分别为100、200、168的ip地址 2、测试你的虚拟机是否能够ping通网关和dns,如果不能请修改网关和dns的地址 3、将如下内容写入/etc/hosts文件中(如果有多个ip地址则写多行&…...
C#编写HttpClient爬虫程序示例
要写一个使用C#和HttpClient的爬虫程序。首先,我需要了解HttpClient的基本用法。HttpClient是用来发送HTTP请求和接收响应的类,对吧?我记得在C#中使用它的时候需要注意一些事情,比如最好使用单例实例,而不是频繁创建和…...
关于Spring MVC在无注解情况下通过参数名匹配获取请求参数的详细说明,包含代码示例和总结表格
以下是关于Spring MVC在无注解情况下通过参数名匹配获取请求参数的详细说明,包含代码示例和总结表格: 1. 核心机制 Spring MVC通过参数名匹配实现无注解参数绑定: 条件:方法参数名需与请求参数(查询参数、表单参数&a…...
数智读书笔记系列027:《医疗健康大数据治理》构建智慧医疗的核心基石
一、图书介绍: 1.1 书籍基本信息 在当今数字化技术飞速发展的背景下,医疗行业正经历着前所未有的变革。信息化、智能化、数据驱动的趋势正在深入到医疗服务的各个环节,推动着医疗健康大数据成为医疗行业发展的核心资产。在这样的时代背景下,《医疗健康大数据治理》这本书应…...
Wayland介绍
Wayland 是一种现代化的显示服务器协议,旨在替代传统的 X Window System(X11),为 Linux 和类 Unix 系统提供更高效、安全的图形显示管理。以下是其核心要点: 1. 基本概念 显示服务器协议:Wayland 定义了客户…...
dockerTeskTop安装dify及使用deepseek
配置 在这之前,要把模型运行一起,我这里是 PS C:\Users\Administrator> ollama run deepseek-r1:8b 模型名称一定要写对 如果添加失败,参考 dify 1.0.1无法在ollama下新增LLM模型 - 何辉煌 - 博客园...
解释 Git 的基本概念和使用方式
Git 是一个分布式版本控制系统,用于跟踪文件的变化并协作开发项目。下面是 Git 的一些基本概念和使用方式: 仓库(Repository):Git 仓库是用来存储项目文件的地方,可以在本地计算机上创建一个本地仓库&#…...
【区块链安全 | 第三十三篇】备忘单
文章目录 备忘单操作符优先级备忘单ABI 编码和解码函数bytes 和 string 的成员Address 的成员区块与交易属性校验和断言数学和加密函数合约相关类型信息函数可见性说明符修饰符备忘单 操作符优先级备忘单 以下是操作符的优先级顺序,按评估顺序列出: 优先级描述操作符1后缀递…...
MyBatis的缓存、逆向工程、使用PageHelper、使用PageHelper
一、MyBatis的缓存 缓存:cache 缓存的作用:通过减少IO的方式,来提高程序的执行效率。 mybatis的缓存:将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直…...
GS+:地统计分析与空间插值工具
大家好,今天为大家介绍的软件是GS:一款用于地统计分析与空间数据处理的软件。与ArcGIS相比的话,它更适合专注于地质统计学分析的用户,尤其是需要对半方差函数进行深入分析和调整的场景下面。我们将从软件的主要功能、支持的系统、…...
C++类型转换详解
目录 一、内置 转 内置 二、内置 转 自定义 三、自定义 转 内置 四、自定义 转 自定义 五、类型转换规范化 1.static_case 2.reinterpret_cast 3.const_cast 4.dynamic_cast 六、RTTI 一、内置 转 内置 C兼容C语言,在内置类型之间转换规则和C语言一样的&am…...
scala-集合2
可变数组 定义变长数组 val arr01 ArrayBuffer[Any](3, 2, 5) (1)[Any]存放任意数据类型 (2)(3, 2, 5)初始化好的三个元素 (3)ArrayBuffer 需要引入 scala.collection.mutable.ArrayBuffer 案例实操 Arra…...
Clang编译器优化选项
Clang 作为 C/C 编译器,提供了丰富的优化选项,以下是主要的优化相关选项分类和说明: 1. 优化级别(通用选项) 选项说明-O0默认级别,禁用所有优化,用于调试。-O1基础优化(代码大小和执…...
Java文件流操作 - 【Guava】IO工具
引言 Guava 使用术语 流来表示可关闭的,并且在底层资源中有位置状态的 I/O 数据流。字节流对应的工具类为 ByteSterams,字符流对应的工具类为 CharStreams。 Guava 中为了避免和流直接打交道,抽象出可读的 源 source 和可写的 汇 sink 两个概…...
C语言中单链表操作:查找节点与删除节点
一. 简介 前面学习了C语言中创建链表节点,向链表中插入节点等操作,文章如下: C语言中单向链表:创建节点与插入新节点-CSDN博客 本文继续学习c语言中对链表的其他操作,例如在链表中查找某个节点,删除链表…...
mapbox基础,加载栅格图片到地图
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️raster 栅格图层 api二、🍀使用本地载…...
Linux红帽:RHCSA认证知识讲解(十 二)调试 SELinux,如何管理 SELinux 的运行模式、安全策略、端口和上下文策略
Linux红帽:RHCSA认证知识讲解(十 二)调试 SELinux,如何管理 SELinux 的运行模式、安全策略、端口和上下文策略 前言一、SELinux 简介二、SELinux 的运行模式2.1 查看和切换 SELinux 模式 三、SELinux 预设安全策略的开关控制四、管…...
模糊斜率熵Fuzzy Slope entropy+状态分类识别!2024年11月新作登上IEEE Trans顶刊
引言 2024年11月,研究者在测量领域国际顶级期刊《IEEE Transactions on Instrumentation and Measurement》(IF 5.6,JCR 1区,中科院二区)上发表科学研究成果,以“Optimized Fuzzy Slope Entropy: A Comple…...
【MATLAB】将数据保存在mat文件中 save/load/matfile
MAT文件为MATLAB格式的二进制文件 save()函数 save - 将工作区变量保存到文件中 save(filename) 将当前工作区中的所有变量保存在 MATLAB 格式的二进制文件(MAT 文件)filename 中。如果 filename 已存在,save 会覆盖该文件。 save(filena…...
009_抽象类和接口
抽象类和接口 final关键字常量 单例模式(设计模式)枚举类抽象类抽象类的注意事项、特点使用抽象类的好处模版方法设计模式 接口接口的好处接口的注意事项 final关键字 final关键字是最终的意思,可以修饰类、方法、变量。 修饰类:…...
【数据结构】排序算法(下篇·开端)·深剖数据难点
前引:前面我们通过层层学习,也就了解了Hoare大佬的排序思想,今天我们学习的东西可能稍微有点难度,因此我们必须学会思想,我很受感慨,因此借此分享一下:【用1520分钟去调试】,如果我们…...
Elixir语言的计算机视觉
Elixir语言在计算机视觉中的应用 引言 计算机视觉作为一门交叉学科,近年来随着深度学习技术的发展而蓬勃发展。传统上,计算机视觉应用通常采用Python、C等语言进行开发,因为这些语言拥有强大的图像处理库和深度学习框架。然而,随…...
VTK知识学习(51)- 交互与Widget(二)
1、交互器样式 前面所讲的观察者/命令模式是 VTK实现交互的方式之一。在前面示例 所示的窗口中可以使用鼠标与柱体进行交互,比如用鼠标滚轮可以对柱体放大、缩小;按下鼠标左键不放,然后移动鼠标,可以转动柱体;按下鼠标左键,同时按…...
目标跟踪Deepsort算法学习2025.4.7
一.DeepSORT概述 1.1 算法定义 DeepSORT(Deep Learning and Sorting)是一种先进的多目标跟踪算法,它结合了深度学习和传统的目标跟踪技术,在复杂环境下实现了高精度和鲁棒性的目标跟踪。该算法的核心思想是通过融合目标的外观特征和运动特征,实现对多个目标的持续跟踪,…...