[PCS] Hw.2 led & Stack

一、状态机代码:

#define ledR (12)
#define ledG (11)
#define ledBrd (13)
#define sw1 (2)
#define SW_ON  (0)
#define SW_OFF  (1)

#define LED_ON  (1)
#define LED_OFF  (0)
#define interval  (500)
// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0;
// will store last time LED was updated

//现在状态
unsigned char swState;
//过去状态
unsigned char swPrevState;
unsigned char ledState;
unsigned char ledBlinkState;
// the setup function runs once when you press reset or power the board
void
setup() {

// initialize digital pin 13 as an output.

pinMode(ledBrd, OUTPUT);

pinMode(ledR, OUTPUT);

pinMode(ledG, OUTPUT);

pinMode(ledB, OUTPUT);

pinMode(sw1, INPUT);

ledAllOff();

digitalWrite(ledBrd,LOW);

delay(100);

swState=swPrevState=digitalRead(sw1);

ledState=LED_OFF;

ledBlinkState=LOW;
}

void ledAllOff()
{

digitalWrite(ledR,HIGH);

digitalWrite(ledG,HIGH);

digitalWrite(ledB,HIGH);
}

// the loop function runs over and over again forever
void loop() {

swState=digitalRead(sw1);

if(swState ==SW_ON && swPrevState==SW_OFF)

{

if(ledState == LED_ON)

{

ledState = LED_OFF;     

}
else
{

ledState = LED_ON;

}

}

swPrevState = swState;

if(ledState == LED_ON)

{

//blink();

blinkWithoutDelay();

}
else
{

ledAllOff();

}
}

void blink()
{

digitalWrite(ledBrd, HIGH);
// turn the LED on (HIGH is the voltage level)

digitalWrite(ledB,LOW);

delay(500);
// wait for a second
  digitalWrite(ledBrd, LOW);
// turn the LED off by making the voltage LOW
  digitalWrite(ledB,HIGH);

delay(500);
// wait for a second

}

void blinkWithoutDelay()
{

unsigned long currentMillis = millis();

if(currentMillis - previousMillis >= interval)
{

// save the last time you blinked the LED 

previousMillis = currentMillis;  

// if the LED is off turn it on and vice-versa:

if (ledBlinkState == LOW)

{
      ledBlinkState = HIGH;
    }
else
{
      ledBlinkState = LOW;
    }
    // set the LED with the ledState of the variable:

digitalWrite(ledBrd, ledBlinkState);   // turn the LED on (HIGH is the voltage level)

digitalWrite(ledB,ledBlinkState);

}

}

二、调查和比较 Linux\ Windows\ Mac 系统间堆栈的不同:

时间: 2024-12-07 06:11:58

[PCS] Hw.2 led & Stack的相关文章

[PCS] Hw.3

Many people think they are full of neobility, and like to play dranbility, which only reflect their shability. 虚函数, 用 virtual 关键字修饰的 member function. 其用于实现多态性 (Polymorphism), 即将接口与实现进行分离, 因个体差异,对相同要求采用不同的策略. 代码: #include <studio.h> void lengthOf(T p

XV6操作系统代码阅读心得(三):锁

锁是操作系统中实现进程同步的重要机制. 基本概念 临界区(Critical Section)是指对共享数据进行访问与操作的代码区域.所谓共享数据,就是可能有多个代码执行流并发地执行,并在执行中可能会同时访问的数据. 同步(Synchronization)是指让两个或多个进程/线程能够按照程序员期望的方式来协调执行的顺序.比如,让A进程必须完成某个操作后,B进程才能执行.互斥(Mutual Exclusion)则是指让多个线程不能够同时访问某些数据,必须要一个进程访问完后,另一个进程才能访问. 当

基于TINY4412的Andorid开发-------简单的LED灯控制【转】

本文转载自:http://www.cnblogs.com/pengdonglin137/p/3857724.html 基于TINY4412的Andorid开发-------简单的LED灯控制 阅读目录(Content) 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源代码情景分析> <嵌入式Linux系统开发完全手册_基于4412_上册> 作者:彭东林 邮箱:[em

屌丝也能体验Azure Stack

继Azure Stack TP1发布后,微软又在9月下旬发布了TP2,对于Azure Stack安装条件让人望而却步.下面我们就先看看TP2版本的部署条件: Hardware Component Minimum Recommended Disk drives: Operating System 1 OS disk with minimum of 200 GB available for system partition (SSD or HDD) 1 OS disk with minimum of

Tiny4412 LED 硬件服务

1.Android系统中启动框架 2.首先实现驱动程序 #include <linux/kernel.h> #include <linux/module.h> #include <linux/miscdevice.h> #include <linux/device.h> #include <linux/fs.h> #include <linux/types.h> #include <linux/moduleparam.h>

WinCE Stack 异常

在使用 VS2008 开发 WinCE7.0 的程序,测试发送 WM_COPYDATA 消息时,发现在 Debug 模式下接收方可以正确的接收到消息,消息中的数据也是正确的.换成 Release 模式后,接收方也能接收到消息,但有一接收方不进入数据解析函数. 两个消息的接收方,一个是用 SDK 开发的 WinCE 程序(称为 C 程序):另一个发送到发送 WM_COPYDATA 消息的自身应用.先将 WM_COPYDATA 发送给应用.再将同样的消息发送给 C 程序. 无论是在 Debug 模式

设置三思LED的IP地址跟端口号

出厂设置是:202.11.11.01 初始端口号是:2929 设置虚拟机的ip跟LED的ip在一个网段上,在虚拟机上telnet命令,登陆到LED上面. 在/etc/init.d/rcS文件中, #!/bin/sh mount -t proc /proc /proc mount -t sysfs /sys /sys mount -t devpts devpts /dev/pts ifconfig eth0 hw ether 00:15:07:21:00:72 ifconfig eth0 10.0

简单的STM32 汇编程序—闪烁LED

要移植操作系统,汇编是道不得不跨过去的坎.所以承接上篇的思路,我准备用汇编写一个简单的闪烁LED灯的程式.以此练习汇编,为操作系统做准备. 第一步,还是和上篇一样,建立一个空的文件夹. 第二步,因为是要用汇编来写程式,所以不需要启动代码,这里选择否. 第三步,建立一个.s文件,并把文件添加到工程中. 第四步,在LED.s文件中添加如下代码. LED0 EQU 0x422101a0 RCC_APB2ENR EQU 0x40021018 GPIOA_CRH EQU 0x40010804 Stack_

Security arrangements for extended USB protocol stack of a USB host system

Security?arrangements for a universal serial bus (USB) protocol stack of a?USB host system are provided. The?security?arrangements prevent an unauthorized or suspicious?USB?device from communicating with the host system, detect suspicious activity or