pwm-使用GPIO模拟PWM,实现呼吸灯。

问题描述

使用GPIO模拟PWM,实现呼吸灯。

各位大神好,我使用的板子是MT7620A,里面没有PWM功能,从而使用GPIO控制LED,使用延时的方法模拟PWM功效,实现呼吸灯的功能。可是。。。几番调试,这个LED依然呼吸不正常。 遂来请教各位, 是不是 在下思路上误入歧途了,有没有大神解救一下的。程序如下:
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9
10
11 int main()
12 {
13 int fd;
14 int result = 0;
15 int i,j;
16 int delay = 100;
17

18 if ((fd = open("/dev/gpio", O_RDWR)) < 0)
19 {
20 printf("Error whilst opening /dev/gpio
");
21 return -1;
22 }

23

24 ioctl(fd, GPIO_DIR_OUT, 2);//设置GPIO2为输出
25 ioctl(fd, GPIO_SET, 2); //GPIO2 灭.
26 while(1)
27 {
28 for( i = 0; i <= delay; i++)
29 {
30 ioctl(fd, GPIO_SET, 1);
31 ioctl(fd, GPIO_SET, 2);
32 usleep(i);
33 ioctl(fd, GPIO_CLEAR, 1);
34 ioctl(fd, GPIO_CLEAR, 2);
35 usleep(delay-i);
36 printf("up:%d
",i);
37 }

38

39 ioctl(fd, GPIO_CLEAR, 1);
40 ioctl(fd, GPIO_CLEAR, 2);
41 usleep(100000);

42 for(j = delay; j >= 0; j--)
43 {
44 printf("down:%d
",j);
45 ioctl(fd, GPIO_CLEAR, 1);
46 ioctl(fd, GPIO_CLEAR, 2);
47 usleep(j);
48 ioctl(fd, GPIO_SET, 1);

ioctl(fd, GPIO_CLEAR, 2);
47 usleep(j);
48 ioctl(fd, GPIO_SET, 1);
49 ioctl(fd, GPIO_SET, 2);
50 usleep(delay-j);
51
52 }
53 }
54
55 return result;
56 }

解决方案

23行 少了两句

25 ioctl(fd, GPIO_DIR_OUT, 1);
26 ioctl(fd, GPIO_SET, 1);

解决方案二:

23行 少了两句

25 ioctl(fd, GPIO_DIR_OUT, 1);
26 ioctl(fd, GPIO_SET, 1);

解决方案三:

通过矩阵键盘,用PWM来实现呼吸灯的效果
STM32使用PWM控制LED呼吸灯效果

时间: 2024-09-08 22:18:24

pwm-使用GPIO模拟PWM,实现呼吸灯。的相关文章

android平台应用GPIO模拟IR控制车载DTV

 数字电视-DTV对我们来说早已不是一个新东西,在车载电子上DTV大多是以模块的形式独立存在的,是可配的.在车载的市场上,客户的需求是多种多样的,如果把DTV也做到车载导航主PCB上去,还是不灵活,不要DTV的就得是不同的PCB板,这对于售后维护.开发都不是一个好办法. DTV在家里,大家一般都是通过遥控器来操作,当然现在有些android的电视盒子可以通过手机来控制,有个泰捷遥控器的apk,通过同一个wifi热点的电视盒,可以用手机来操作也挺方便.但是在车上,怎么去操作DTV呢?在小车上,一般

如何实现TMS320F2812中的GPIO模拟I2C数据接收传输的代码

问题描述 如何实现TMS320F2812中的GPIO模拟I2C数据接收传输的代码 我想实现TMS320F2812中的GPIO模拟I2C数据接收传输的代码(将数据从一端口传送至另一端口即可),苦于学习不够深入,所以来请教各位大神,如果有现成的程序代码就更好了,急急急,跪求各位大牛解答. 解决方案 仔细研读一下i2C协议,这个很容易做到的.

好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮

我们先来看看Quartz MS字体动态显示系统时间的效果,难度相较于上一篇也要简单许多. 首先是定义一个TextBlock如下. <Grid> <TextBlock Name="tBlockTime" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="68" Foreground="Green"/> &

小米3呼吸灯怎么设置?小米3呼吸灯设置方法图解

1)在小米手机待机状态下我们点击[设置]在进入设置中找到[呼吸灯]我们点击它.     2)然后我们看到有一个关闭.(如需关闭点击后方按钮即可),接下来三个分别是通知颜色.来电颜色和短信颜色.想换颜色点击你想换颜色的功能!(如下图所示)    3)然后小米3还提供了7中颜色任你让我们选择哦,在这里我们可以选择自己喜欢的颜色了哦

努比亚Z9 mini的呼吸灯怎么开启?

1.我们在努比亚Z9 mini系统桌面"设置"进入之后我们点击"显示"设置,如下图所示: 2,然后在显示中我们点击[呼吸灯]点击它打开进入,效果如下: 3,然后在打开进入界面之后我们会看到有一项"充电"然后再点击"自动调整呼吸灯亮度"选项,开启后,当充电的时候就能看到呼吸灯亮起,如下图所示: 努比亚Z9 mini的呼吸灯在哪? 努比亚Z9mini呼吸灯就是下面的Home键位置,该菜单键是触控的效果如下

小米4呼吸灯不亮小米4呼吸灯不亮问题解决方法

第一步.我们在手机中点击桌面中的[设置]--[全部设置]--[呼吸灯]如下图所示.     第二步.然后我们在进入界面中会看到有一个[收到通知时指示灯闪烁]然后我们点击它打开之后再点击[通知颜色]即可.     如果这样设置好之后还是不显示可能就是手机有问题,我们可以尝试一下重启手机哦~

Sunn Light:模拟太阳的智能灯

目前市场上做智能灯的企业有不少,其中还包括了像飞利浦这样的大企业,飞利浦推出的Hue在市场上受到了不少消费者的青睐.不过与Hue不同的是,目前正在Kickstarter上众筹的Sunn Light是一款工业与自然结合的产品.这款Sunn Light是一个智能LED灯具,它可以随着太阳的变化不断地改变颜色和亮度.Sunn Light会自动模拟室外的阳光变化,甚至可以具体到每分钟的变化,让你在室内就能感觉到自然地变化.Sunn Light提供了高品质的漫射光.在早上,Sunn Light会随着太阳的

传iPhone6背面Logo将发光 或为呼吸灯

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 知道你可能已经被不断曝光的 iPhone 6 相关信息"轰炸"得有些不耐烦了,但今天这个的这个功能应该会让你眼前一"亮"吧. 据 USwitch 上发布的照片显示, iPhone 6 背面的苹果标志可能会亮起来,这一信息也得到了爆料大神 Sonny Dickson 的确认.从照片上可以看到,iPhone

pwm是什么意思

脉冲宽度调制(PWM)是英文"Pulse Width Modulation"的缩写,简称脉宽调制. 它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域.一种模拟控制方式,根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶 体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定. 脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法.通过高分辨率计数器的使用,方波的占空比