技术标签: 电子数码管 wiringPi raspberry pi
我是看着胡老师的文档做的,现在也懒得写了。把文档放在这了http://pan.baidu.com/s/1c07D02k,胡老师写的文档真是太详细了
下面只贴一下代码吧,也没有注释。
led.h
#define LED_A 29
#define LED_B 27
#define LED_C 24
#define LED_D 22
#define LED_E 21
#define LED_F 28
#define LED_G 25
#define LED_H 23
#define LED_COM1 0
#define LED_COM2 2
#define LED_COM3 3
#define LED_COM4 12
#define LED_D1 LED_E
#define LED_D2 LED_D
#define LED_D3 LED_H
#define LED_D4 LED_C
#define LED_D5 30
#define LED_D6 31
#define LED_D7 11
#define LED_D8 10
int tube_segment[]={LED_A, LED_B, LED_C, LED_D, LED_E, LED_F, LED_G, LED_H};
int number_segments[]={0b11111100, 0b01100000, 0b11011010, 0b11110010, 0b01100110, 0b10110110, 0b10111110,0b11100000, 0b11111110, 0b11100110};
int tube_coms[]={LED_COM1, LED_COM2, LED_COM3, LED_COM4};
int led_segment[]={LED_D1, LED_D2, LED_D3, LED_D4, LED_D5, LED_D6, LED_D7, LED_D8};
void init_raspberrypi_gpios(void);
void display_number_in_tube(int number, int tube_number);
led.c
#include<stdio.h>
#include<wiringPi.h>
#include "led.h"
int main()
{
int i, current_number=0;
wiringPiSetup();
init_raspberrypi_gpios();
while(1){
// for (i = 0; i < 4; ++i)
{
display_number_in_tube(current_number, 0);
display_number_in_tube(current_number, 1);
display_number_in_tube(current_number, 2);
display_number_in_tube(current_number, 3);
current_number++;
if(current_number==10){
current_number=0;
}
delay(500);
}
}
return 0;
}
void init_raspberrypi_gpios(void){
int i, count =8;
for (i = 0; i < count; ++i)
{
pinMode(tube_segment[i], OUTPUT);
digitalWrite(tube_segment[i], HIGH);
}
count = 4;
for (i = 0; i < count; ++i)
{
pinMode(tube_coms[i], OUTPUT);
digitalWrite(tube_coms[i], HIGH);
}
}
void display_number_in_tube(int number, int tube_number){
int i;
int b_number = number_segments[number];
for (i = 0; i < 8; ++i)
{
if(b_number&0x80){
digitalWrite(tube_segment[i], LOW);
}else{
digitalWrite(tube_segment[i], HIGH);
}
b_number<<=1;
}
// for (i = 0; i < 4; ++i)
// {
// digitalWrite(tube_coms[i], HIGH);
// }
if (tube_number < 4)
{
digitalWrite(tube_coms[tube_number], LOW);
/* code */
}else{
printf("%s\n", "tube number error!");
}
}
然后用WinScp传到树莓派上,在终端用如下命令编译、运行。
gcc -Wall -o led led.c -lwiringPi
sudo ./led
文章目录jQuery实现全选,反选和取消按钮基于DOM来实现反选基于jQuery的写法基于jQuery(使用三元运算符)jQuery实现全选,反选和取消按钮以下是要操控的HTML代码<input type="button" value="全选" onclick="selectAll()"/> <input type="button" value="取消" oncli...
缺芯!涨价!交期52周!从2020年底开始到现在,相信听到的、看到的最多的都是这几个关键词了,这引发了不只是消费类市场的恐慌,也引发了工业类市场的恐慌。众所周知,相对比消费类市场,工业类市场的产品更加稳定、更新换代速度较慢、生命周期更长。但是即便如此,长时间的“供货慌”,还是会对工业类市场造成冲击,因此除了积极寻求更多的供货渠道,寻求替代物料也成了维持产品生命力的又一出路,特别是主处理器。以工业网关以及工业HMI产品为例,目前市场里主流的处理器是恩智浦(NXP)的i.MX 6ULL和德州仪器
一、Python的安装①下载Python的安装文件。Python发展至今,有很多版本,这里以python 3.68为例,其官网下载地址为:https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64.exe有时候官网下载比较慢,我把安装文件上传到百度网盘,分享给大家。python 3.68的百度网盘下载地址为:链接:https://pan.baidu.com/s/17qfs7yUNsUGzb1ab6ce8Aw提取码:nl5c②下载完成
Kubernetes是一个开源容器管理平台,它现在已经成为了云原生的中流砥柱。自从把它移交给Cloud Native Compute Foundation(云原生计算基金)后,该项目在业界上取得了史无前例的关注,目前没有一个公有云环境不提供Kubernetes托管服务。Kubernetes正迅速成为现代容器化应用运行的管理平台。随着Kubernetes的崛起,它带来了一个全新的生态系统的形成。...
github地址:https://github.com/youth5201314/banner效果图:Step 1.依赖bannerGradledependencies{ compile 'com.youth.banner:banner:1.4.10' //最新版本}123Step 2.添加权限到你的 AndroidManifest.xml&lt;!-- if you want to ...
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpui
运行 tomcat的时候,突然报出这个错误:java.lang.UnsatisfiedLinkError: E:\apache-tomcat-7.0.75\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform最快的解决方法是:删掉E:\apache-tomca
我需要能夠讀取現有的JSON文件,對其進行修改(例如替換,移除和添加對象,數組和鍵值對),然後再次將文件寫出。Qt修改JSON文件我一直想讀,寫與這些內容的JSON文件:{"array": [{"name": "Channel","default": 1},{"name": "Size","default": 457}]}我讀成功的文件,但在不使用下面的代碼做出任何更改:QFile File("/...
耍不动了…package com.beyond;import javax.sound.midi.Soundbank;public class MathTest { public static void main(String[] args) { System.out.println(Math.E); // 自然对数的底数 e。 System.out.println(Math.PI); // 圆周率 System.out.println(.