当前位置:网站首页>理论上的嵌入式跑马灯
理论上的嵌入式跑马灯
2022-08-03 05:21:00 【物腐虫生】
跑马灯代码修改部分
驱动代码修改部分:
/* 功能:点亮第i个LED灯 参数:无符号整型变量iLed,表示第i个LED灯 返回值:无 */
void AllLedOn(int iLed)
{
//读出端口M数据寄存器(S3C64XX_GPKDAT)值,修改并写回相关端口寄存器
//add your code here
unsigned int tmp;
tmp =readl(S3C64XX_GPMDAT);
tmp &= ~(0X1<<iLed);
printk("iLedOn---S3C64XX_GPMDAT=0X%0x\n",tmp);
writel(tmp,S3C64XX_GPMDAT);
}
/* 功能:熄灭第i个LED灯 参数:无符号整型变量iLed,表示第i个LED灯 返回值:无 */
void AllLedOff(int iLed)
{
//读出端口M数据寄存器(S3C64XX_GPKDAT)值,修改并写回相关端口寄存器
//add your code here
unsigned int tmp;
tmp =readl(S3C64XX_GPMDAT);
tmp &= ~(0X1<<iLed);
tmp |= (0X1<<iLed);
printk("iLedOff---S3C64XX_GPMDAT=0X%0x\n",tmp);
writel(tmp,S3C64XX_GPMDAT);
}
static long s3c6410_led_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
int iLed;
switch(cmd)
{
case ON:
//开启LED跑马灯
AllLedOn(0x0);
for(iLed=0x1;iLed<6;iLed++){
AllLedOff(iLed-1);
AllLedOn(iLed);
sleep(500);
}
break;
case OFF:
//熄灭LED跑马灯
for(iLed=0x0;iLed<6;iLed++)
AllLedOff(iLed);
break;
}
}
应用程序修改部分:
void main()
{
int fd,iLed;
fd=open("/dev/leddev" ,O_RDWR);
if(fd<0)
exit(1);
while(1)
{
//点亮LED跑马灯
ioctl(fd, ON);
}
close (fd);
}
或者将ioctl和主函数代码修改成如下形式2:(ON和OFF的驱动代码不做修改)
static long s3c6410_led_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
int iLed;
switch(cmd)
{
case ON:
//开启LED跑马灯
AllLedOn(arg);
case OFF:
AllLedOff(arg);
break;
}
}
形式2对应应用程序:
void main()
{
int fd,iLed;
fd=open("/dev/leddev" ,O_RDWR);
if(fd<0)
exit(1);
while(1)
{
//点亮LED跑马灯
ioctl(fd,ON,0);
for(int i=0;i<6;i++)
{
ioctl(fd,ON,i);
ioctl(fd,OFF,i);
sleep(5);
}
}
close (fd);
}
边栏推荐
猜你喜欢
随机推荐
【DC-2 Range Penetration】
Makefile语法
Flask,3-6
ansible的安装和部署详细过程,配置清单基本操作
web安全-PHP反序列化漏洞
Flask的简单介绍及使用方法简介
飞机大战完整版
【按位取反,逻辑操作符,条件操作符,逗号表达式,下标引用,函数调用,结构体】操作符后续+表达式求值(上)
web安全-sql注入漏洞
A-B数对问题|UPC-Count Interval|洛谷-P1102A-B数对
Go (二) 函数部分1 -- 函数定义,传参,返回值,作用域,函数类型,defer语句,匿名函数和闭包,panic
解析各种文本的年月日
HoloLens联合发明人:打造理想的全天AR需要解决这些问题
C语言简单实现扫雷小游戏
速来围观,17个运维实用技巧
Navicat 解决隔一段时间不操作出现延时卡顿问题
Playing with Markdown(2) - Extraction and Manipulation of Abstract Syntax Trees
Pr第三次培训笔记
Modelarts第一次培训
Pr第二次培训笔记