嵌入式入门小工程
此代码基于s3c2440
1.点灯
//led.c
void init_led(void)
{unsigned int t;t = GPBCON;t &= ~((3 << 10) | (3 << 12) | (3 << 14) | (3 << 16));t |= (1 << 10) | (1 << 12) | (1 << 14) | (1 << 16);GPBCON = t;
}void led_on(unsigned char n)
{unsigned int t;t = GPBDAT;t &= ~(0x0F << 5);n &= 0x0F;n ^= 0x0F;t |= (n << 5);GPBDAT = t;
}
int main(void)
{ init_wdt(); //初始化看门狗init_led(); //初始化led灯led_on(0);led_on(1);//led1点亮
}
2.走马灯
并初始化蜂鸣器,灯闪一次响一次,去时响,来时不响。

//初始化蜂鸣器
void init_beep(void)
{unsigned int t;t = GPBCON;t &= ~(3 << 0);t |= (1 << 0);GPBCON = t;
}
//打开蜂鸣器
void beep_on(void)
{GPBDAT |= (1 << 0);
}
//关闭蜂鸣器
void beep_off(void)
{GPBDAT &= ~(1 << 0);
}
3.按下按键1,led1亮。以此类推
void init_key(void)
{GPGCON &= ~((3 << 0) | (3 << 6) | (3 << 10));
}int key_pressed(void)
{if((GPGDAT & 0x01) == 0){return 1;}else if((GPGDAT & 0x08) == 0)// 1000{return 2;}else if((GPGDAT & 0x20) == 0) //10 0000{return 3;}return 0;
}
int main(void)
{unsigned char i;int n = 0; int key;init_key();init_beep();init_wdt();init_led();led_on(0);while(1){init_beep();key = key_pressed();led_on(key);}
}
4.利用中断控制,按下按键1led1亮,按下按键2蜂鸣器响,按下按键3蜂鸣器关。
void init_wdt(void)
{WTCON &= ~(1 << 5);
}
void irq_handler(void)
{if (INTOFFSET == 5) // 检查外部中断号{if ((EINTPEND & (1 << 8)) != 0) // 按键一{led_on(1); // 点亮LED 1}else if ((EINTPEND & (1 << 11)) != 0) // 按键二{beep_on(); // 打开蜂鸣器}else if ((EINTPEND & (1 << 13)) != 0) // 按键三{beep_off(); // 关闭蜂鸣器}EINTPEND = EINTPEND;}SRCPND = SRCPND; // 清除源中断INTPND = INTPND; // 清除中断状态
}void delay(unsigned int n)
{while (n--);
}void init_key(void)
{unsigned int t;INTMOD &= ~(1 << 5); // 设置为外部中断模式INTMSK &= ~(1 << 5); // 允许外部中断5// 配置GPG引脚为外部中断输入t = GPGCON;t &= ~((3 << 0)|(3 << 6)|(3 << 10));t |= ((2 << 0)|(2 << 6)|(2 << 10)); GPGCON = t;// 配置EXTINT1t = EXTINT1;t &= ~(0x0FFFFFF); // 清除配置t |= ((1 << 3)|(1 << 15)|(1 << 23)); // GPG3上升沿触发t |= ((2 << 0)|(2 << 12)|(2 << 20)); // GPG0上升沿触发EXTINT1 = t;// 解除中断屏蔽EINTMASK &= ~((1 << 8)|(1 << 11)|(1 << 13)); // 解除中断8屏蔽}int main(void)
{ init_wdt(); //初始化看门狗init_led(); //初始化led灯init_beep();init_key();led_on(0);while (1){delay(0xFFFF); // 主循环延迟}
}
相关文章:
嵌入式入门小工程
此代码基于s3c2440 1.点灯 //led.c void init_led(void) {unsigned int t;t GPBCON;t & ~((3 << 10) | (3 << 12) | (3 << 14) | (3 << 16));t | (1 << 10) | (1 << 12) | (1 << 14) | (1 << 16);GPBCON t; }void le…...
hackmyvm靶场--zon
环境 攻击机kali 靶机 未知 主机探测 因为在同一个局域网内使用ARP协议探测存活主机 靶机为192.168.56.128 端口探测 常见的80和22端口 那么一定是寻找web漏洞拿shell了 后台扫描 后台扫描常用dirsearch和gobuster,有时候小字典可能不太行,可以尝试换个大点…...
atcoder abc372 启发式合并, dp
A delete 代码: #include <bits.stdc.h>using namespace std;int main() {string s;cin >> s;for(auto t: s) if(t ! .) cout << t; } B 3 ^ A 思路:三进制转换,可以参考二进制,先把当前可以加入的最大的3的…...
CentOS Stream 9部署MariaDB
1、更新系统软件包 sudo dnf update 2、安装MariaDB软件包(替代mysql) sudo dnf install mariadb-server 3、安装MariaDB服务 sudo systemctl enable --now mariadb 4、检查MariaDB服务状态 sudo systemctl status mariadb 5、配置MariaDB安全性 sudo my…...
【Leetcode:997. 找到小镇的法官 + 入度出度】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
大数据Flink(一百二十三):五分钟上手Flink MySQL连接器
文章目录 五分钟上手Flink MySQL连接器 一、创建数据库表 二、创建session集群 三、源表查询 四、窗口计算 五、结果数据写回数据库 五分钟上手Flink MySQL连接器 MySQL Connector可以将本地或远程的MySQL数据库连接到Flink中&#x…...
SYN Flood攻击原理,SYN Cookie算法
SYN Flood是一种非常危险而常见的Dos攻击方式。到目前为止,能够有效防范SYN Flood攻击的手段并不多,SYN Cookie就是其中最著名的一种。 1. SYN Flood攻击原理 SYN Flood攻击是一种典型的拒绝服务(Denial of Service)攻击。所谓的拒绝服务攻击就是通过进…...
计组(蒋)期末速成笔记1
蒋本珊计组期末不挂科复习笔记 第1章 概论 第2章 数据的机器层次表示 第3章 指令系统 第4章 数值的机器运算 第5章 存储系统和结构 第6章 中央处理器 第7章 总线 第1章 概论 蒋本珊计组期末不挂科复习笔记知道你快考试了,莫慌! 第1章 概论1.1 冯诺依曼计…...
mysql学习教程,从入门到精通,SQL 更新数据(UPDATE 语句)(17)
1、SQL 更新数据(UPDATE 语句) SQL UPDATE 需要指定要更新的表、要修改的列以及新值,并且通常会通过WHERE子句来指定哪些行需要被更新。下面是一个简单的示例,说明如何使用UPDATE语句。 假设我们有一个名为employees的表…...
【吊打面试官系列-MySQL面试题】MyISAM 表格将在哪里存储,并且还提供其存储格式?
大家好,我是锋哥。今天分享关于【MyISAM 表格将在哪里存储,并且还提供其存储格式?】面试题,希望对大家有帮助; MyISAM 表格将在哪里存储,并且还提供其存储格式? 每个 MyISAM 表格以三种格式存储…...
常用的图像增强的算法之间的联系和区别
Unsharp Mask (USM)、拉普拉斯算子、直方图均衡化和伽马增强是图像处理中常见的技术,但它们在原理、作用和应用场景上有显著不同。以下是对这些方法的详细比较: 1. Unsharp Mask (USM) 原理:USM 是通过对图像进行模糊处理(如高斯…...
SpringBoot+Vue考试系统免费分享
源码说明: 这是一个开源的SpringBoot与Vue开发的在线考试系统。经过站长测试,系统稳定可用,允许重复考试。 环境: 需要安装的环境包括Node.js v14.21.3、JDK8、Maven以及MySQL 5.7。 前端部署教程: 执行 npm inst…...
音视频入门基础:FLV专题(1)——FLV官方文档下载
一、FLV简介 Flash Video(简称FLV),是一种网络视频格式,用作流媒体格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。 一般FLV文件包在SW…...
使用c#制作一个小型桌面程序
封装dll 首先使用visual stdio 创建Dll新项目,然后属性管理器导入自己的工程属性表(如果没有可以参考visual stdio 如何配置opencv等其他环境) 创建完成后 系统会自动生成一些文件,其中 pch.cpp 先不要修改,pch.h中先导入自己需…...
Clip studio paint百度云下载:附安装包+教程
首先补一个介绍,Clip Studio Paint(即CSP):这是一款专业的绘画和漫画创作软件,拥有丰富的绘画工具,适合漫画创作者使用。其界面友好,工具齐全,能够满足漫画创作中的各种需求。 用过…...
从Yargs源码学习中间件的设计
yargs中间件介绍 yargs 是一个用于解析命令行参数的流行库,它能帮助开发者轻松地定义 CLI(命令行接口),并提供参数处理、命令组织、help文本自动生成等功能。今天我们来学习一下它对中间件的支持。 中间件的API详细信息࿰…...
高级I/O知识分享【epoll || Reactor ET,LT模式】
博客主页:花果山~程序猿-CSDN博客 文章分栏:Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一,接口 epo…...
Matlab 的.m 文件批量转成py文件
在工作中碰到了一个问题,需要将原来用matlab gui做出来的程序改为python程序,因为涉及到很多文件,所以在网上搜了搜有没有直接能转化的库。参考了【Matlab】一键Matlab代码转python代码详细教程_matlab2python-CSDN博客 这位博主提到的matla…...
【软考】传输层协议TCP与UDP
目录 1. TCP1.1 说明1.2 三次握手 2. UDP3. 例题3.1 例题1 1. TCP 1.1 说明 1.TCP(Transmission Control Protocol,传输控制协议)是整个 TCP/IP 协议族中最重要的协议之一。2.它在IP提供的不可靠数据服务的基础上为应用程序提供了一个可靠的、面向连接的、全双工的…...
Arthas dashboard(当前系统的实时数据面板)
文章目录 二、命令列表2.1 jvm相关命令2.1.1 dashboard(当前系统的实时数据面板) 二、命令列表 2.1 jvm相关命令 2.1.1 dashboard(当前系统的实时数据面板) 使用场景: 在 Arthas 中,dashboard 命令用于提…...
OpenClaw性能优化:降低Qwen3-VL:30B多模态任务的Token消耗
OpenClaw性能优化:降低Qwen3-VL:30B多模态任务的Token消耗 1. 问题背景:多模态任务的高Token消耗困境 上周我在飞书群里测试OpenClaw对接Qwen3-VL:30B模型时,遇到了一个典型问题:当同事上传一张产品设计图要求分析时,…...
Qwen3-Reranker-0.6B保姆级教程:requirements.txt依赖版本兼容性避坑指南
Qwen3-Reranker-0.6B保姆级教程:requirements.txt依赖版本兼容性避坑指南 1. 引言:为什么依赖版本如此重要 当你第一次接触Qwen3-Reranker-0.6B这个强大的重排序模型时,可能会觉得安装过程很简单——不就是运行一个pip install命令吗&#…...
OpenClaw技能扩展:基于nanobot实现Markdown自动转换
OpenClaw技能扩展:基于nanobot实现Markdown自动转换 1. 为什么需要文档自动化转换 在日常工作中,我们经常需要处理各种格式的文档——Word、PDF、PPT、Excel甚至网页内容。手动将这些文档转换为Markdown格式不仅耗时,还容易出错。作为一名技…...
手把手教学:如何在本地运行ChatGLM3-6B对话模型
手把手教学:如何在本地运行ChatGLM3-6B对话模型 1. 项目简介 你是否曾经遇到过这样的情况:想用AI助手帮忙写代码、分析文档或者只是聊聊天,但云端服务要么响应慢,要么担心隐私泄露?今天我要介绍的ChatGLM3-6B本地部署…...
Java面试题精讲:Qwen-Image-Edit-F2P集成开发常见问题
Java面试题精讲:Qwen-Image-Edit-F2P集成开发常见问题 1. 引言 最近在Java技术面试中,我发现很多候选人在AI模型集成方面存在不少困惑。特别是像Qwen-Image-Edit-F2P这样的人脸驱动图像生成模型,虽然功能强大,但在实际Java项目集…...
OpenClaw多任务队列:nanobot处理并行请求方案
OpenClaw多任务队列:nanobot处理并行请求方案 1. 问题背景与需求场景 上周我在本地部署了一个基于OpenClaw的自动化助手,用于处理日常办公中的重复性任务。最初只是简单对接了单一大模型实例,但随着使用频率增加,很快遇到了一个…...
LVGL显存、FreeRTOS堆栈、全局变量:在128KB RAM的STM32F407上如何做内存预算与平衡?
LVGL显存、FreeRTOS堆栈与全局变量的内存博弈:STM32F407的128KB RAM精算指南 当一块STM32F407芯片的128KB RAM需要同时供养LVGL的华丽界面、FreeRTOS的多任务调度以及应用层的全局变量时,开发者面临的挑战不亚于一位财务总监在有限预算下平衡多个部门的开…...
springboot-vue+nodejs大学生作业管理系统的设计与实现
目录技术栈选择系统模块划分开发阶段规划部署方案设计进度与风险管理项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选择 后端采用Spring Boot框架,提供RESTful API接口,处理业务逻辑和数据持久化…...
基于HY-Motion 1.0的智能剧本创作系统:自动生成角色动作描述
基于HY-Motion 1.0的智能剧本创作系统:自动生成角色动作描述 1. 当编剧不再为动作细节发愁 你有没有过这样的经历:写到关键场景时,卡在一句“他猛地转身,眼神里闪过一丝犹豫”之后,接下来该写什么?是“右…...
FHE实战:用Python体验全同态加密的医疗数据分析案例
FHE实战:用Python体验全同态加密的医疗数据分析案例 医疗数据隐私保护一直是行业痛点。某三甲医院曾因数据共享导致50万患者信息泄露,直接损失超2亿元。而全同态加密(Fully Homomorphic Encryption, FHE)技术允许在加密数据上直接…...
