Arduino与JavaScript开发实例数码管显示控制基于74HC595
Arduino与JavaScript开发实例-数码管显示控制(基于74HC595)数码管显示控制(基于74HC595)文章目录
数码管显示控制(基于74HC595)
1、ShiftRegister 对象创建与描述
2、硬件准备
3、软件准备
4、应用程序代码实现
4.1 Electron应用程序描述
4.2 Electron应用程序页面(index.html)
4.3 Electron应用程序控制逻辑(led_digital_renderer.js)
4.4 主程逻辑控制(main.js)
5、仿真结果
数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point),其基本单元是发光二极管。
七段数码管分为共阳极及共阴极,共阳极的七段数码管的正极(或阳极)为八个发光二极管的共有正极,其他接点为独立发光二极管的负极(或阴极),使用者只需把正极接电,不同的负极接地就能控制七段数码管显示不同的数字。共阴极的七段数码管与共阳极的只是接驳方法相反而已。
在前面的文章中 ...
Arduino与JavaScript开发实例数码管显示控制基于HT16K33
Arduino与JavaScript开发实例-数码管显示控制-基于HT16K33数码管显示控制-基于HT16K33HT16K33是一款内存映射和多功能LED控制器驱动器。 设备中的最大显示段数为 128 个模式(16 段和 8 个公共),具有 13*3 (MAX.) 矩阵键扫描电路。 HT16K33 的软件配置功能使其适用于多种 LED 应用,包括 LED 模块和显示子系统。 HT16K33 与大多数微控制器兼容,并通过两线双向 I2C 总线进行通信。
在前面的文章中,对HT16K33的应用做了详细的介绍,请参考:
Arduino与Proteus仿真实例-HT16K33驱动LED点阵(8x8)仿真
Arduino与Proteus仿真实例-HT16K33驱动LED点阵(16x8)仿真
Arduino与Proteus仿真实例-HT16K33驱动8位16段数码管仿真
Arduino与Proteus仿真实例-HT16K33驱动4位7段数码管仿真
Arduino与Proteus仿真实例-HT16K33驱动8位14段数码管(字符字母数字显
1、Led.Digits对象创建与描述Led.Di ...
Arduino与JavaScript开发实例数码管显示控制基于Max7219
Arduino与JavaScript开发实例-数码管显示控制-基于Max7219数码管显示控制-基于Max7219Maxim MAX7219 是一款 LED 显示驱动器,可控制多达 64 个单独的 LED,或八个 7 段 LED 数字,或单独的 LED 和数字的任意组合,以八行八列的矩阵形式连接。 它将主机从不断复用 8 行 8 列的繁琐工作中解放出来。 此外,它还负责亮度控制(16 级),并实现显示测试和显示空白(关机)功能。
主机使用三个信号与 MAX7219 通信:DATA、CLK 和 LOAD。 该模块对它们进行了位操作,但也可以使用摩托罗拉的 SPI 接口(或其他制造商的类似接口)来简化和加快数据传输。
数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point),其基本单元是发光二极管。
七段数码管分为共阳极及共阴极,共阳极的七段数码管的正极(或阳极)为八个发光二极管的共有正极,其他接点为独立发光二极管的负极(或阴极),使用者只需把正极接电,不同的负极接地就能控制七 ...
STM32F1与STM32CubeIDE编程实例AzureRTOS ThreadX移植
STM32F1与STM32CubeIDE编程实例-Azure-RTOS ThreadX移植ThreadX移植文章目录
ThreadX移植
1、ThreadX介绍
2、STM32CubeIDE配置
3、ThreadX源码配置
4、ThreadX源码移植配置
5、移植测试
5.1 创建LED闪烁任务
5.2 串口计数线程
5.3 ThreadX内核启动
1、ThreadX介绍ThreadX拥有广泛安全认证,并且符合汽车行业软件可靠性协会 MISRA C 标准,是应用最为广泛的嵌入式操作系统之一。ThreadX 实时操作系统已成为全球最受欢迎的实时操作系统之一,已部署在超过 62 亿台设备中,包括消费电子、医疗设备、数据网络应用和 SoC。
ThreadX 提供基于优先级、抢占式调度、快速中断响应、内存管理、线程间通信、互斥、事件通知和线程同步等特性。 ThreadX 的主要区别技术特征包括抢占阈值、优先级继承、高效的定时器管理、快速软件定时器、微微内核设计、事件链和内存占用小。在ARM 架构处理器中需要最小内存尺寸约为 2 KB。
ThreadX 通过非对称多处理 ...
Arduino与JavaScript开发实例舵机驱动
Arduino与JavaScript开发实例-舵机驱动舵机驱动伺服电机是一种独立的电气设备,它以高效率和高精度旋转机器的部件。
伺服机构(伺服)可以指代很多不同的机器,这些机器的使用时间比大多数人可能意识到的要长。 从本质上讲,伺服系统是任何内置反馈元件的电机驱动系统。伺服系统随处可见,从重型机械到车辆的动力转向,再到机器人技术和各种电子产品。
伺服电机一般由三个核心部件组成:直流电机、控制器电路和电位器或类似的反馈机制。 直流电机连接到齿轮箱和输出/驱动轴以增加电机的速度和扭矩。 直流电机驱动输出轴。 控制器电路解释控制器发送的信号,电位器作为控制器电路的反馈,以监测输出轴的位置。 几乎所有的爱好伺服器都有一个标准的三针、0.1 英寸间隔的连接器来为伺服器供电和控制。 不同品牌的颜色编码可能有所不同,但引脚几乎普遍采用相同的顺序。 组合在一起时,只需三根电线即可驱动和控制输出轴的方向、速度和位置。
为了将伺服器沿其运动弧线移动到某个位置,或者在连续旋转伺服器的情况下电机的速度和方向,控制器需要发送一个精确定时的信号供伺服器解释。 典型的爱好伺服器希望每 20 毫秒看到 ...
STM32F1与STM32CubeIDE编程实例ThreadX的相关概念
STM32F1与STM32CubeIDE编程实例-ThreadX的相关概念Threadx中的相关概念文章目录
Threadx中的相关概念
1、线程优先级
2、线程状态
3、线程调度
3.1 抢占式、基于优先级的线程调度策略
3.2 轮询调度策略
4、确定性(Determinism)
5、内核(Kernel)
6、RTOS
7、Context 切换(Context Switch)
8、时间片(Time Slice)
9、中断处理(Interrupt Handling)
10、线程饥饿(Thread Starvation)
11 、优先级反转(Priority Inversion)
12、优先级继承(Priority Inheritance)
13、抢占阈值(Preemption-Threshold)
14、ThreadX相关文章
在进一步介绍如何使用ThreadX之前,让我们先了解一下与ThreadX的线程相关的概念。
1、线程优先级大多数实时嵌入式操作系统都会使用优先级来确定系统中线程的重要性。线程的优先级主要有两种类型:
静态优先级(Static Pr ...
STM32F1与STM32CubeIDE编程实例ThreadX的线程服务Thread Service
STM32F1与STM32CubeIDE编程实例-ThreadX的线程服务(Thread Service)ThreadX的线程服务(Thread Service)文章目录
ThreadX的线程服务(Thread Service)
1、线程控制块(Thread Control Block,TCB)介绍
2、 创建线程与删除
3、 线程信息查询
4、 线程状态控制
4.1 恢复线程执行
4.2 线程休眠
4.3 暂停线程执行
4.4 终止线程执行
4.5 中止线程挂起
5、 线程优先级、抢占阈值、时间片更改
5.1 更改线程优先组
5.2 更改线程抢占阈值
5.3 更改线程时间片
6、 查询当前正在运行线程
7、线程放弃控制
8、线程执行概述
9、线程设计
9.1 最小化线程数量
9.2 谨慎选择优先
9.3 最小化优先级的数量
9.4 考虑抢占阈值
9.5 考虑优先继承
9.6 考虑轮询调度
9.7 考虑时间片
在本文中,将详细介绍ThreadX的线程服务。线程服务涉及线程创建与销毁、线程信息查询、线程优先级更改、线程终止、线程唤醒等等。 ...
STM32F1与STM32CubeIDE编程实例ThreadX的内存管理
STM32F1与STM32CubeIDE编程实例-ThreadX的内存管理ThreadX的内存管理文章目录
ThreadX的内存管理
1、字节内存池(Memory Byte Pools)
1.1 字节内存池介绍
1.2 字节内存池控制块(Memory Byte Pool Control Block)
1.3 字节内存池的陷阱
1.4 字节内存池服务
1.4.1 创建字节内存池
1.4.2 字节内存池分配
1.4.3 删除字节内存池
1.4.4 检索字节内存池信息
1.4.5 对字节内存池挂起列表进行优先级排序
1.4.6 释放内存到字节池
1.4.7 字节内存池内部管理
2、内存块池(Memory Block Pools)
2.1 内存块池介绍
2.2 内存块池控制块(Memory Block Pool Control Block)
2.3 内存块池服务
2.3.1 创建内存块池
2.3.2 分配内存块池
2.3.3 删除内存块池
2.3.4 内存块池信息检索
2.3.5 对内存块池挂起列表进行优先级排序
2.3.6 内存块内部管理
3、字 ...
STM32F1与STM32CubeIDE编程实例ThreadX中的互斥体Mutex服务
STM32F1与STM32CubeIDE编程实例-ThreadX中的互斥体(Mutex)服务ThreadX中的互斥体(Mutex)服务文章目录
ThreadX中的互斥体(Mutex)服务
1、互斥体(Mutex)介绍
2、ThreadX的互斥体控制块(Mutex Control Block)
3、互斥体服务
3.1 创建互斥体
3.2 删除互斥体
3.3 获取互斥体独占所有权
3.4 查询互斥体信息
3.5 优先考虑互斥挂起列表
3.6 释放互斥体独占所有权
4、避免死锁
5、完整示例
5.1 应用程序定义
5.2 生产者线程
5.3 消费者线程
5.3 主程序
1、互斥体(Mutex)介绍在实际应用中,可能会出现多个线程访问同一个共享资源或临界资源的情况。在这种情况下,需要保证线程对共享资料或临界资源具有独占访问权,即对共享资源或临界资源的访问具有排他性。互斥体(Mutex)具有这样的属性。它的设计目的是通过避免线程之间的冲突和防止线程之间不必要的交互来提供互斥保护。
互斥锁是一种公共资源,在任何时间点最多只能由一个线程拥有。 此外,准确地说,一个 ...
STM32F1与STM32CubeIDE编程实例ThreadX中的信号量Semaphore服务
STM32F1与STM32CubeIDE编程实例-ThreadX中的信号量(Semaphore)服务ThreadX中的信号量(Semaphore)服务文章目录
ThreadX中的信号量(Semaphore)服务
1、信号量(Semaphore)介绍
2、计数信号量控制块(Counting Semaphore Control Block,CSCB)
3、避免死锁
4、避免优先级反转(Priority Inversion)
5、信号量服务
5.1 创建信号量
5.2 删除信号量
5.3 获取信号量
5.4 释放信号量
5.5 Ceiling方式释放信号量
5.5 信号量通知
5.6 优先计算信号量挂起列表
5.7 信号量信息检索
6、完整示例
6.1 应用程序
6.2 生产者线程
6.3 消费者线程
6.4 主程序
6.5 程序运行结果
1、信号量(Semaphore)介绍ThreadX 提供 32 位计数信号量,计数值范围为 0 到
2
32
−
1
2^{32} - 1
232−1,或 4,294,967,295(含)。有两 ...
