Led Blinking 功能驱动设计

Simulink第一个例子:Using IP Core Generation Workflow: LED Blinking Using IP Core Generation Workflow: LED Blinking 阅读详情

这是OBM里的一段代码,实现了LED 闪烁的功能,下面是LED原理图:

Led blinking 

The LEDR, LEDG, LEDB, controlled by the 8806, can be programed to blinking by set the 8806 internal regs. Such as 0x0c,0x0d,0x0e,0x0f.

the difference between the 2 circuit is the resister value ,1 use 1k,and 2 use 0.

now I can only debug out the first blinking . maybe the second circuit has problems .

 

static int enable_led()
+{
+ char val = 0,count;
+
+ portofino_write(0x15, 0x02);
+ portofino_read(0x15,&count);
+ printf(NULL, "0x15 count = 0x%x.", count);
+
+ portofino_write(0x16, 0x10);
+ portofino_read(0x16,&count);
+ printf(NULL, "0x16 count = 0x%x.", count);
+
+
+ portofino_write(0x00, 0x0f);
+ portofino_write(0x01, 0x02);
+ portofino_read(0x01,&count);
+ printf(NULL, "0x01 count = 0x%x.", count);
+
+#if 1
+ AddMessage((UINT8_T*) ("Run Led Enable !\0"));
+ portofino_write(PORTOFINO_WLED2B, 0x2);
+
+ portofino_read(PORTOFINO_WLED2B,&count);
+ printf(NULL, "0x05 count = 0x%x.", count);
+
+ portofino_write(PORTOFINO_WLED3A, 0x35);
+ portofino_read(PORTOFINO_WLED3A,&count);
+ printf(NULL, "0x06 count = 0x%x.", count);
+#endif
+ portofino_read(PORTOFINO_WLED3B, &val);
+
+ portofino_write(PORTOFINO_WLED3B, val | 0x02); //RGB1 LED enable

+ portofino_read(PORTOFINO_WLED3B,&count);
+ printf(NULL, "0x07 count = 0x%x.", count);
+
+// portofino_write(PORTOFINO_RGB1_CON, 0x11); //RGB

+ portofino_write(PORTOFINO_RGB1_CON, 0x07); //RGB control

+ portofino_read(PORTOFINO_RGB1_CON,&count);
+ printf(NULL, "0x0c count = 0x%x.", count);
+
+ portofino_write(PORTOFINO_R_RGB1, 0x00); //Red

+ portofino_read(PORTOFINO_R_RGB1,&count);
+ printf(NULL, "0x0d count = 0x%x.", count);
+
+ portofino_write(PORTOFINO_G_RGB1, 0x00); //Green

+ portofino_read(PORTOFINO_G_RGB1,&count);
+ printf(NULL, "0x0E count = 0x%x.", count);
+
+ portofino_write(PORTOFINO_B_RGB1, 0xFF); //Blue

+ portofino_read(PORTOFINO_B_RGB1,&count);
+ printf(NULL, "0x0F count = 0x%x.", count);
+ AddMessage((UINT8_T*) ("Led Enable Complete !\0"));
+while(1);
+ return 0;
+}


Linux 访问superio 寄存器,ITE Super IO 学习 - GPIO 简述Super IO中的GPIO逻辑设备功能还是挺丰富的,除了通用GPIO功能,还支持看门狗(Watch Dog Timer)、SMI输出路由(SMI Ouput Routing)、外部中断路由(External Interrupt Routing)、LED闪烁(LED Blinking)等功能。这里就主要记录下LED Blinking这个功能,其它的有需要再研究。LED Blinking主要用在... 阅读详情

相关推荐

LEDControl:嵌入式轻量级LED状态驱动控制库

LED控制是嵌入式系统中最基础的外设交互场景,其本质是通过GPIO实现状态输出与时间调制。传统轮询或阻塞延时方案存在CPU占用高、实时性差、移植困难等问题。基于状态机与时间解耦原理,轻量级LED控制库可提供确定性行为、零动态内存分配及跨平台硬件抽象能力,显著提升资源受限MCU的外设管理效率。该类框架广泛应用于工业HMI状态指示、IoT设备心跳反馈、RTOS任务级告警等低功耗、高可靠场景。本文详解LEDControl库的设计思想、核心API与HAL层移植实践。

weixin_28235889的博客 575

基于事件驱动的LED控制框架详解

在嵌入式系统开发中,LED控制是一个常见的需求,不同项目对LED的效果和功能要求各不相同。传统的LED控制方式需要针对不同的需求编写不同的代码,增加了开发的工作量和复杂度。为了解决这一问题,我开发了一种扩展性较强的LED框架,该框架脱离底层细节,只关注应用层,提供一种通用的LED控制方案,使得开发人员可以轻松实现各种LED效果,极大地提高了开发效率和灵活性。

wcynbl的博客 1776

嵌入式无阻塞LED蜂鸣器驱动:状态机+时间戳轮询实现

在嵌入式实时系统中,LED与蜂鸣器的人机交互控制需兼顾响应性、确定性与资源效率。传统delay()延时会导致任务挂起、中断延迟、RTOS调度失准等严重问题。基于状态机与外部单调tick计数器的无阻塞驱动范式,将时间逻辑解耦于执行流之外,仅通过条件判断触发GPIO翻转,实现恒定微秒级开销与纳秒级时序可预测性。该方案天然支持多实例独立调度、中断安全触发及低功耗唤醒同步,广泛适用于STM32、ESP32、nRF52等MCU平台的工业HMI、IoT终端与医疗设备。本文详解non_blocking_Led_Buzze

weixin_42576186的博客 578

PCA9550/51/52/53 LED blinking with GPIO expansion

PCA9550/51/52/53 LED blinking with GPIO expansion 恩智浦PCA9550,PCA9551,PCA9552和PCA9553用于使I2C总线和SMBus应用中的LED闪烁。 每个LED可以以两种可编程速率之一接通,断开或闪烁,而不会使I2C总线过载或占用I2C总线主控。 blink rate 可以在0.025到6.4秒(40到0.156Hz)之间变化,分...

nicole088的专栏 798

嵌入式Linux用户空间GPIO控制实战:基于i.MX6ULL的LED驱动开发

GPIO(通用输入输出)是嵌入式系统与外部硬件交互的基础接口,其原理是通过读写特定寄存器来控制引脚的电平状态。在Linux系统中,sysfs文件系统为用户空间提供了一种标准化的硬件访问机制,将硬件资源抽象为文件,使得开发者无需深入内核即可操作设备。这种技术方案降低了嵌入式开发的入门门槛,提升了原型验证和功能测试的效率,尤其适用于LED控制、按键读取等基础外设操作场景。本文以NXP i.MX6ULL ARM平台为例,详细解析如何通过sysfs GPIO接口,在用户空间完成从硬件原理图分析、GPIO编号计算到C

weixin_34259232的博客 395

嵌入式非阻塞指示器库:LED闪烁、呼吸、模式化信号控制

在嵌入式系统中,状态指示器(如LED)的精准时序控制是人机交互与设备自检的关键环节。传统delay()方式会阻塞主循环,破坏实时性与多任务协同能力;而基于毫秒时间戳的状态机方案,通过解耦‘何时变化’与‘当前状态’,实现真正的非阻塞调度。该技术广泛应用于Arduino、STM32及ESP32等裸机或RTOS环境,支撑LED控制、信号反馈、fading渐变和blink模式序列等核心功能。其轻量设计(单实例仅24字节RAM)、无动态内存依赖、毫秒级精度及对数亮度补偿特性,特别适合资源受限的工业网关、IoT终端与安

weixin_42578963的博客 590

嵌入式LED控制库:非阻塞驱动与硬件抽象设计

LED控制是嵌入式系统中最基础的外设操作之一,其本质涉及GPIO驱动、时序管理与状态机建模。传统`digitalWrite()`存在阻塞执行、时序不可控、多任务不兼容等缺陷,而现代工程实践要求LED具备确定性延迟、零动态内存分配和跨平台可移植性。通过硬件抽象层(HAL)分离寄存器操作与业务逻辑,结合非阻塞状态机实现LED闪烁与状态切换,可显著提升实时性与可靠性。该方案广泛适用于Arduino、STM32及FreeRTOS等资源受限环境,支撑调试指示、故障编码、人机交互等关键应用场景,是嵌入式底层驱动开发的典

weixin_29935511的博客 550

i.MX6ULL嵌入式Linux开发:从Sysfs到内核驱动的LED控制实战

通用输入输出(GPIO)是嵌入式系统与外部世界交互的基础接口,其原理是通过读写特定内存映射寄存器来控制引脚的电平状态。在Linux操作系统中,内核作为硬件资源的统一管理者,通过GPIO子系统对上提供标准化的访问接口,实现了硬件差异的屏蔽,其技术价值在于为应用程序提供了安全、统一的硬件控制能力。这一机制广泛应用于物联网设备、工业控制等需要与传感器、执行器交互的场景。本文聚焦于**i.MX6ULL**这一高性能ARM处理器平台,深入剖析其**GPIO控制模型**,并系统对比了通过用户空间sysfs接口与编写标准

weixin_30521161的博客 410

基于PCA9955的I2C LED驱动芯片应用与OM13330评估板实战指南

I2C总线作为一种广泛应用的串行通信协议,以其简单的两线制(SDA和SCL)和主从架构,在嵌入式系统中常用于连接微控制器与各类外设。其工作原理基于起始/停止条件、地址帧和数据帧的传输,支持多主多从和时钟同步,具有占用IO少、易于扩展的优点。在LED驱动领域,I2C协议的价值在于能够通过单一总线精准控制多个驱动芯片,实现复杂的灯光效果,如调光、调色和动态模式。PCA9955作为一款典型的I2C接口LED驱动芯片,集成了16路恒流输出和256级PWM调光,通过OM13330评估板,开发者可以快速上手,进行硬件连

weixin_33851177的博客 335

PhotonCore:Arduino非阻塞LED控制库

LED动态控制是嵌入式系统中典型的时间敏感任务,其本质是在精确时间点驱动PWM或数字引脚输出变化。传统delay()导致系统挂起,millis()手动管理则易引入状态混乱与溢出风险。基于定时器中断的非阻塞架构,通过状态机+时间戳调度实现亮灭、渐变、闪烁等效果的解耦执行,显著提升主循环实时性与代码可维护性。该方案广泛适用于智能照明、状态指示、传感器联动及低功耗IoT设备,尤其契合对响应性与资源效率双重要求的Arduino及兼容平台开发场景。

weixin_35734408的博客 211

ITE Super IO 学习 – GPIO

000000000

tianpu2320959696的博客 1772

NXP PCA9955A/B评估板OM13483:多通道LED驱动与诊断功能实战指南

在嵌入式系统与物联网设备开发中,多通道LED驱动是实现复杂灯光效果与状态指示的核心技术。其原理通常基于恒流源与PWM调光,通过I2C或SPI总线进行精确的寄存器控制,以实现对亮度、颜色和动态模式的编程。这项技术的价值在于能够以极高的集成度和灵活性,驱动数十甚至上百个LED,同时支持分组控制、渐变效果以及关键的开路/短路故障诊断,极大地提升了产品的可靠性与用户体验。其应用场景广泛覆盖智能家居照明、汽车内饰氛围灯、工业设备状态面板以及大型广告显示屏等领域。本文以NXP的PCA9955A/B系列16通道LED驱动

weixin_33898233的博客 406

嵌入式LED花样驱动:状态机与PWM原理实战

LED驱动是嵌入式系统中最基础的外设控制场景,其本质是通过GPIO输出电平变化实现硬件行为调控。理解其核心需从数字电路基本概念出发:高/低电平对应电流通断,进而决定LED亮灭。在此基础上,程序需构建精确时序逻辑——变量定义决定内存效率与数值安全,条件判断实现状态迁移,循环结构生成时间序列。其中,无符号整型变量(如uint8_t、uint16_t)因无负值溢出风险且契合计数与位操作需求,成为LED状态与PWM占空比控制的首选;而脉宽调制(PWM)则通过调节固定周期内的高电平持续时间,实现亮度无级渐变。该技术广

weixin_32311823的博客 46

NXP PCA9745B LED驱动器与OM13524评估板实战指南

在嵌入式系统和物联网设备中,LED驱动是常见需求,其核心在于如何高效、精准地控制多路LED的亮度和动态效果。传统方案依赖MCU的GPIO和PWM资源,不仅占用大量引脚,软件负担也重。SPI总线作为一种高速、全双工的同步串行通信接口,通过主从架构和简单的四线制连接,为外设控制提供了高效的解决方案。其技术价值在于能以极少的MCU引脚驱动多个外设,实现复杂的数据交换,特别适合需要多通道、实时控制的场景。PCA9745B正是一款基于SPI的16通道恒流LED驱动器,它集成了独立的PWM和电流控制寄存器,能够实现高精

cuiji1279的博客 432

告别手动点鼠标:用Python脚本批量跑ADS版图仿真,效率提升10倍(附完整代码)

本文详细介绍了如何利用Python脚本自动化ADS版图仿真流程,显著提升射频工程师的工作效率。通过调用ADS底层接口,实现参数化修改、批量任务调度和结果自动收集,解决了手动操作中的常见问题,如仿真不更新等。附完整代码,帮助开发者快速实现10倍效率提升。

weixin_42523543的博客 331

从PLC到机械臂:揭秘工业自动化中的信号交互与控制逻辑

本文深入解析了PLC与机械臂在工业自动化中的信号交互与控制逻辑,详细介绍了硬件连接方案、通信机制及控制逻辑设计。通过西门子PLC与六轴机械臂的实战案例,展示了从信号采集到动作执行的完整流程,并探讨了高级控制策略与行业应用前景,为工程师提供了一套完整的实践框架。

weixin_29304985的博客 388

通用LED闪烁代码模块(也可实现软件PWM)

仅提供参考文件: 1、需要修改gpio引脚 2、需要根据平台实现软件定时器接口,启动,停止,回调,三个API。 /* * pwm_drv.c * * Created on: 2021年3月3日 * Author: Administrator */ #include "pwm_drv.h" #include "appled.h" enum { PWM_LED = 0x00, PWM_CHANNELS = 0x01 }; UserPwm_t userPwm[PWM.

一颗偏执的心 1152

银河麒麟V10ARM架构服务器离线安装docker\nacos【附安装包】

本文分享了在银河麒麟ARM64操作系统上安装Docker和Nacos的完整过程。首先提供了Docker的自动化安装脚本,包含服务配置、存储路径设置等关键步骤,并给出了常用维护命令。接着详细介绍了通过Docker-compose部署Nacos的方法,包括镜像导入、配置文件修改、鉴权设置等注意事项,特别强调了密钥长度必须超过32个字符的要求。文章还提供了Nacos初次登录的注意事项,并预告了后续可能推出的Redis、Nginx等安装教程。所有配置文件和脚本均可直接下载使用,适合内网环境下国产操作系统的部署

weixin_39054697的博客 2344

NXP PCA9745B LED驱动芯片评估指南:从SPI菊花链到RGB调光实战

在嵌入式系统与物联网设备开发中,高效、精准的LED驱动控制是硬件设计的关键环节。其核心原理在于通过恒流驱动技术,确保LED亮度不受电压波动影响,从而实现稳定的光学输出。从技术价值看,专业的LED驱动芯片不仅能大幅节省MCU的GPIO资源,更能通过高分辨率PWM实现细腻的灰度与色彩控制,提升整体能效与可靠性。典型的应用场景涵盖汽车照明、广告显示屏、智能家居氛围灯等需要驱动数十至数百颗LED的领域。本文以NXP PCA9745B评估板OM13524为例,深入解析其SPI菊花链架构与分组PWM调光机制,通过实战演

weixin_33910385的博客 345

遥感大模型核心技术之自监督预训练技术研究(2025年9月版)

本文系统探讨了自监督预训练技术在遥感大模型构建中的核心作用。随着遥感数据进入"大数据"时代,传统监督学习面临"数据丰富、标签贫乏"的瓶颈,而自监督预训练通过设计代理任务从无标签数据中学习特征表示,成为驱动大模型发展的关键引擎。文章分析了遥感领域对自监督预训练的三大独特挑战:多源异构性、地理空间约束和时空动态性,并提出了针对性解决方案:掩码自编码(MAE)技术及其演进、地理对比学习与多模态融合、位置感知预训练与多任务学习。

panshengwu的博客 842

汇川AM402、H3U和上位机C#ModebusTcp通讯

目录一、测试任务二、测试环境三、PLC工程1、组态配置2、ip地址、端口号 3、全局变量定义四、C#端Winform程序创建1创建主界面 2、创建子窗口 3、运行生成,界面效果4、Modebus协议说明5、Modebus操作说明六、测试1、寄存器读测试 2、MW1300寄存器的BIT位3、写寄存器测试4、PLC断电或者断网 七、工程下载连接1、PLC作为ModebusTCP端,端口号都是502,PC端上位机软件作为TcpClient去连接多台PLC。PC端读写PLC寄存器。2、PC端在有的PLC断电、断网的

panjinliang066333的博客 2万+

Arduino状态机实战:从手动控制到自动熄灭转向灯的嵌入式系统设计

在嵌入式系统开发中,状态机(Finite State Machine, FSM)是一种用于管理复杂逻辑和事件驱动行为的核心设计模式。其原理是将系统行为划分为有限个明确的状态,并根据事件触发状态间的转移,从而实现清晰、可预测的控制流程。这种技术的核心价值在于能够有效替代传统冗长且易出错的if-else嵌套,提升代码的可维护性和系统响应实时性,尤其适用于物联网设备、自动化控制等场景。本文以“自动熄灭转向灯”这一经典嵌入式项目为例,深入剖析如何运用状态机与非阻塞定时相结合的方法,实现从手动开关到智能延时关闭的闭环

weixin_30719711的博客 449

基于FPGA的UDP 通信(一)

手头的FPGA开发板上有一个千兆网口,最近准备做一下以太网通信的内容。本文先介绍基本的理论知识。 FPGA芯片型号:xc7a35tfgg484-2 网口芯片:RTL8211 网络接口:RJ45

记录所学,分享知识,结识挚友 8360

CubeMX高级模式下的模块化开发:从点亮LED到构建可维护嵌入式系统

本文详细介绍了如何在STM32CubeMX高级模式下进行模块化开发,从基础的LED控制到构建可维护的嵌入式系统。通过利用HAL库和遵循用户代码规范,开发者可以创建结构清晰、易于维护的代码架构,有效提升开发效率和项目可维护性。

uuu88的博客 293

TPAMI 2024 | MO-MIX:基于深度强化学习的多目标多智能体协同决策

深度强化学习(RL)已被广泛应用于解决复杂的决策问题。在许多现实世界的场景中,任务通常有多个相互冲突的目标,并且可能需要多个智能体进行合作,这些是多目标多智能体决策问题。然而,在这个交叉领域的研究工作还相对较少。现有的方法仅限于单独的领域,并且只能处理具有单一目标的多智能体决策,或者具有单一智能体的多目标决策。在本文中,我们提出了MO-MIX来解决多目标多智能体强化学习(MOMARL)问题。我们的方法基于集中训练与分散执行(CTDE)框架。

小白学视觉 1129

控制科学与工程(自动化)保研经验【2】——南开、同济篇

禁止转载 1、南开人工智能学院夏令营   保研之旅第一个夏令营就是南开,南开夏令营非常早(6月份),当时我们专业仅有两人入营。夏令营前一天我们两个坐高铁来到了天津,几经辗转来到了南开的津南校区,非常偏僻。在自己找的酒店住了一晚,第二天一早去学院报到,资格审查、报销路费等等,然后开营仪式,吃饭,入住酒店,实验室参观。   开营仪式和实验室参观了解到,南开人工智能学院是国内第一批人工智能学院,和很多高...

Control Everything 6532
上一篇: OHCI_UHCI_EHCI(2.0)_xHCI(3.0)
下一篇: 背光调试_backligt debug
lamdoc
博客等级 码龄18年 155粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值