按键的轮询

发布者:CelestialMagic最新更新时间:2024-12-17 来源: cnblogs关键字:按键  轮询  s5pv210 手机看文章 扫描二维码
随时随地手机看文章

早上依旧七点不到就醒了,不知道是不是一年多来差不多都习惯了,想想大一大二都是九点后才醒的,现在真的不知道哪里来的精神。作为一个“插班生”,总要比别个努力一点,努力不丢人,,今天主要任务是裸机,s5pv210 的降频,

 

#define GPJ2CON *((volatile unsigned int *)0xE0200280)
#define GPJ2PUD *((volatile unsigned int *)0xE0200288)
#define GPJ2DAT *((volatile unsigned int *)0xE0200284)

#define APLL_CON0 *((volatile unsigned int *)0xE0100100)

extern void delay(void);

void chang_clock(void)
{
APLL_CON0 = APLL_CON0 |0x807d0302;   //只有一行,嵌入式就是这样,短短的一行代码,后面就是不知道多少资料的翻阅
}


void main(void)
{

GPJ2CON = 0x1111;
GPJ2PUD = 0xaa;
GPJ2DAT = 0xf;

chang_clock();

while(1)
{
GPJ2DAT = 0x0;
delay();
GPJ2DAT = 0xf;
delay();
}
}

 

  还做了按键轮询的裸机驱动,如下

 

#define GPJ2CON *((volatile unsigned int *)0xE0200280)
#define GPJ2PUD *((volatile unsigned int *)0xE0200288)
#define GPJ2DAT *((volatile unsigned int *)0xE0200284)

#define GPH2CON *((volatile unsigned int *)0xE0200C40)
#define GPH2PUD *((volatile unsigned int *)0xE0200C48)
#define GPH2DAT *((volatile unsigned int *)0xE0200C44)

/*
#define GPH3CON *((volatile unsigned int *)0xE0200C60)
#define GPH3PUD *((volatile unsigned int *)0xE0200C68)
#define GPH3DAT *((volatile unsigned int *)0xE0200C64)

GPH3CON = 0x00;
GPH3PUD = 0xaa;
//GPH3DAT = 0xff; //输入的时候是不能赋初值的

*/
extern void delay(void);

void main(void)
{
GPJ2CON = 0x1111;
GPJ2PUD = 0xaa;
GPJ2DAT = 0xf;

GPH2CON = 0x00;
GPH2PUD = 0xaa;//这里只是配置了四位,所以下面判断时用0e,od,ob,o7
//GPH2DAT = 0xff; //输入的时候是不能赋初值的

while(1)
{
delay();

if(GPH2DAT == 0x0e)
{
GPJ2DAT = GPJ2DAT ^1; //班上小美女想的,神来之笔,学习了
}

if(GPH2DAT == 0x0d)
{
GPJ2DAT = GPJ2DAT ^2; //每次进来只要和相应位异或就可以取反
}

if(GPH2DAT == 0x0b)
{
GPJ2DAT = GPJ2DAT ^4;
}

if(GPH2DAT == 0x07)
{
GPJ2DAT =GPJ2DAT ^8;
}
}
}

 


关键字:按键  轮询  s5pv210 引用地址:按键的轮询

上一篇:s5pv210的外部中断
下一篇:点亮指路灯

推荐阅读最新更新时间:2026-02-18 12:27

S5PV210(TQ210)学习笔记——按键驱动程序
经过前面的配置,S5PV210开发已经可以成功进入Linux控制台了,那么,有了这个环境就可以开始学习Linux驱动的编写和测试了。学习Linux设备驱动,通常是从字符设备驱动开始。由于linux驱动开发具有比较系统的体系结构,我很难在一篇文章中阐述其开发思路,为了简单起见,从本文开始,自行编写的驱动将直接附上代码,对开发过程中感触比较深的地方稍作陈述。 我写的第一个驱动程序是Led的,但是感觉没有必要发出来了,S5PV210(TQ210)的按键驱动程序源码,仅供参考: #include linux/types.h #include linux/module.h #include linux/cdev.h #incl
[单片机]
单片机前后台轮询控制框架:实现清晰高效的控制流程
在单片机开发中,代码结构往往由“main主函数+一堆if语句+中断服务函数”构成,随着项目复杂化,容易出现混乱、不易维护的代码。 为了构建清晰、可扩展、响应及时的系统框架,前后台轮询结构是一种非常实用的设计思路。 本文对前后台架构、如何实现轮询机制,以及如何管理系统任务的执行优先级与效率进行讨论。 一、什么是“前后台轮询”结构? 前后台结构是一种将“实时响应任务”与“非实时轮询任务”分离的单片机编程框架: 前台(中断服务):用于响应“事件驱动”的突发事务,例如:按键中断、串口接收、定时器超时等; 后台(主循环):不断轮询任务标志,根据前台产生的事件决定是否执行相应处理逻辑。 关键思想:中断只
[单片机]
GD32F303固件库开发(10)----双ADC轮询模式扫描多个通道
概述 本章主要配置,双ADC轮询模式扫描多个通道,通过串口进行打印。 查阅手册可以得知,PA9、PA10为串口0的输出和输入口。 查阅手册可以得知,PA9、PA10为串口0的输出和输入口。需要GD样片的可以加Q_qun申请:6_15061293 。 样品申请 https://www.wjx.top/vm/wFGhGPF.aspx# 硬件准备 这里准备了1块开发板进行验证,分别是GD32303C_START开发板。 keil配置 microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,如果要使用printf(),必须开启。
[单片机]
GD32F303固件库开发(10)----双ADC<font color='red'>轮询</font>模式扫描多个通道
STM32F0单片机快速入门七 串口(UART)操作从轮询到中断
1.从轮询到中断 很多同学都不喜欢用中断,而偏爱用轮询的操作方式。 这是不是和我们的天性有关呢?每个人都喜欢一切尽在掌握中,肯定都不喜欢被打断。我们常常都有这样的经验:正在跟别人说一件事,然后突然有个电话打进来,Call打完后突然记不起来刚才讲到哪了!这种糟糕的体验对我们影响是如此深刻,以至于我们认定机器可能也是这样吧,频繁的中断会不会把事情搞乱呢?好在机器虽然大部分时间都比人笨一些,但在处理这种问题上却能做到一丝不苟。机器在中断来的时候总会老老实实地先把当前正在做的记录下来,然后转去处理中断事件,中断处理完后分毫不差地恢复原来的工作。 仔细想一想,我们是不是也可以在接电话前先用个小本儿记录一下正在讲的事情呢?我们为什么没有这么
[单片机]
mini2440串口轮询实验
程序依然烧写在norflash上面 Makefile uart.bin : start.s function.c arm-linux-gcc -g -c -o start.o start.s arm-linux-gcc -g -c -o function.o function.c arm-linux-ld -Ttext 0x30000000 -g start.o function.o -o uart.elf arm-linux-objcopy -O binary -S uart.elf uart.bin arm-linux-objdump -D -m arm uart.elf uart.d
[单片机]
SAM4E单片机之旅——2、LED闪烁之轮询定时器
之前我们使用空循环,达到了延迟的目的,但是这样子的延迟比较不精确。现在就使用实时定时器(RTT)来进行更为精确的计时。RTT虽然不是特别通用,在某些单片机上可能没有,但它较为简单。 RTT内部有一个计数器,并且可以配置这个计数器的时钟。通过配置以及计算,就可以得出经过一段时间后,该计数器的增加值。和之前一样,我们使用空循环来完成延迟,只是延迟退出的条件变为“计数器增加了一个特定的值”。 一、 RTT配置 为实现这个功能,需要配置的主要就是分频数了。RTT的时钟可以选择对慢时钟(SCLK,32.768 kHz)分频,或直接使用1 Hz的RTC时钟。为使LED能进行较为快速的闪烁,在这里就不能使用1 Hz的时钟了。RTT_MR的低
[单片机]
Stm32使用Usart代码例子轮询、中断、DMA
/* 转载请注明出处:tedeum.iteye.com / 首先是不使用中断的方法使用usart1,管脚pa9,pa10,此方法已在f3discovery上验证通过,来源:https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fcortex_mx_stm32%2Fusart%20code&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E1
[单片机]
Stm32使用Usart代码例子<font color='red'>轮询</font>、中断、DMA
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved