文档章节

pcDuino上跑第一个Arduino程序_blink

simpower
 simpower
发布于 2014/11/01 13:18
字数 804
阅读 36
收藏 0

入手pcDuino有一段时间了,鼓起勇气刷了个官方最新lubuntu系统,开始我的arduino之旅。刚刚调通了第一个基于arduino语言的led闪烁程序,与大家分享。Arduino就这么简单,很好上手。

目标:使接在pcduino上的led灯闪烁

硬件连接:一个led灯+限流电阻,一端接5V,另一端接pcduino上的任一GPIO(0-13)

一、搭建环境

安装官方文档刷最新ubuntu系统,很详细不再细说。其实刷机时接上debug,会有提示安装信息,不用一直盯着TX RX led。下载https://github.com/pcduino/c_enviroment上面的arduino例程。

二、编写arduino代码

我是参考arduino给的例子写的,觉得arduino语言太好上手,没有什么硬件基础都可以玩。下面编写一个led闪烁程序blink

在arduino-master\test增加blank.c文件:arduino-master\test\blink.c

[plain]   view plain copy
<EMBED id=ZeroClipboardMovie_1 height=18 name=ZeroClipboardMovie_1 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=1&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
  1. /*  
  2. * I/O test program for a10  
  3. * Blink  
  4. * Turns on an LED on for one second, then off for one second, repeatedly.  
  5. * This example code is in the public domain.  
  6. */  
  7.   
  8. #include <core.h>  
  9. int led_pin = 5;  
  10.   
  11. void setup()  
  12. {  
  13.     if ( argc !=2 )  
  14.     {  
  15.         printf("Usage %s  LED_PIN_NUM(0-13)\n", argv[0]);  
  16.         exit(-1);     
  17.     }  
  18.       
  19.     
  20.     led_pin = atoi(argv[1]);  
  21.       
  22.     printf("blink  LED (connected to pin %d)\n",led_pin);  
  23.   
  24.   // initialize the digital pin as an output.  
  25.   // led_pin has an LED connected on most Arduino boards:  
  26.   pinMode(led_pin, OUTPUT);       
  27. }  
  28.   
  29. void loop() {  
  30.   digitalWrite(led_pin, HIGH);   // set the LED on  
  31.   delay(1000);              // wait for a second  
  32.   digitalWrite(led_pin, LOW);    // set the LED off  
  33.   delay(1000);              // wait for a second  
  34. }  

修改arduino-master\test\Makefile:

[plain]   view plain copy
<EMBED id=ZeroClipboardMovie_2 height=18 name=ZeroClipboardMovie_2 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=2&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
  1. LIBS=-L../../sample/core -larduino -lspi  
  2. INCS=-I../../sample/core/include  
  3. TARGET=../../sample/test  
  4.   
  5. OBJS = io_test adc_test pwm_test spi_test adxl345_test blink  
  6.   
  7. all: $(OBJS)  
  8.     @mkdir -p $(TARGET)  
  9.     @mv $(OBJS) $(TARGET)  
  10.   
  11. io_test: io_test.c  
  12.     $(CC) $(LIBS) $(INCS) $< -o $@  
  13.   
  14. blink: blink.c  
  15.     $(CC) $(LIBS) $(INCS) $< -o $@  
  16.   
  17. adc_test: adc_test.c  
  18.     $(CC) $(LIBS) $(INCS) $< -o $@  
  19.   
  20. pwm_test: pwm_test.c  
  21.     $(CC) $(LIBS) $(INCS) $< -o $@  
  22.   
  23. spi_test: spi_test.c    
  24.     $(CC) $(LIBS) $(INCS) $< -o $@  
  25.   
  26. adxl345_test: adxl345_test.c  
  27.     $(CC) $< -o $@  
  28. clean:  
  29.     @for i in $(OBJS); do rm -f $(TARGET)/$$i; done  

其中blink: blink.c是新加的led闪烁程序。就这样,代码就编写完了

三、编译

ubuntu@ubuntu:/$ cd home/ubuntu/work/arduino-master/test/
ubuntu@ubuntu:~/work/arduino-master/test$ ls
Makefile  adc_test.c  adxl345_test.c  blink.c  io_test.c  pwm_test.c  spi_test.c
ubuntu@ubuntu:~/work/arduino-master/test$ make
cc -L../../sample/core -larduino -lspi -I../../sample/core/include io_test.c -o io_test
cc -L../../sample/core -larduino -lspi -I../../sample/core/include adc_test.c -o adc_test
cc -L../../sample/core -larduino -lspi -I../../sample/core/include pwm_test.c -o pwm_test
cc -L../../sample/core -larduino -lspi -I../../sample/core/include spi_test.c -o spi_test
cc adxl345_test.c -o adxl345_test
cc -L../../sample/core -larduino -lspi -I../../sample/core/include blink.c -o blink
ubuntu@ubuntu:~/work/arduino-master/test$ cd ../../
ubuntu@ubuntu:~/work$ cd sample/
ubuntu@ubuntu:~/work/sample$ ls
core  test
ubuntu@ubuntu:~/work/sample$ cd test/
ubuntu@ubuntu:~/work/sample/test$ ls
adc_test  adxl345_test  blink  io_test  pwm_test  spi_test
ubuntu@ubuntu:~/work/sample/test$ 

分析Makefile可知,最终编译生成的扩展性文件在/home/ubuntu/work/sample目录下

四、测试

开始测试写的blink.c led闪烁程序,我的led接在gpio5上,传入参数5

ubuntu@ubuntu:~/work/sample/test$ ./blink 5
blink  LED (connected to pin 5)

现在就可以看到接在GPIO5上的LED灯开始闪烁了。Arduino程序就这么简单,但又很灵活,不信你也可以试试。

本文转载自:http://blog.csdn.net/u010216127/article/details/8902938

simpower
粉丝 28
博文 673
码字总数 50284
作品 0
海淀
程序员
私信 提问
pcDuino书籍_第七章: 和pcDuino一起使用Arduino

上篇: pcDuino书籍_第六章:在pcDuino上运行Cloud 9 从理论上来说, 我们不需要和pcDuino一起使用Arduino。 Arduino Uno上面的接口,pcDuino都有, 而且是系统的一部分自然资源。在版本20130...

pc朵拉
2013/08/05
1K
0
pcDuino上跑第一个Arduino程序_blink

入手pcDuino有一段时间了,鼓起勇气刷了个官方最新lubuntu系统,开始我的arduino之旅。刚刚调通了第一个基于arduino语言的led闪烁程序,与大家分享。Arduino就这么简单,很好上手。 目标:使...

pc朵拉
2013/11/30
511
0
pcDuino是一个带 mini PC 功能的加强版Arduino,开源软件Linux和开源硬件Arduino在pcDuino上完美的结合

pcDuino是一个带 mini PC 功能的加强版Arduino。开源软件Linux和开源硬件Arduino在pcDuino上完美的结合。目前,大多的Arduino生态体系的Shields可以在pcDuino上跑。但是,需要一个 T board的...

pc朵拉
2013/07/25
1K
5
pcDuino 软件包更新清单 2013-08-06

pcDuino 更新软件包清单(2013-08-06): ===================================================== 下面列出了用在 apt-get install 后面的软件包的名字: pcduino (for $sudo apt-get install......

pc朵拉
2013/08/10
535
0
做一个Cubieduino如何(有新内容了)?

今天看到一个东西: http://www.oschina.net/question/116701105771 里面有一段文字 pcDuino是一个平台,是LINUX软件和开源硬件的结合,pcDuino赋予创客力量,只有你有创意就可以用pcDuino做出...

cubieboard
2014/08/28
46
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
6
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部