新手小白,兩種寫法都不對,請大牛指點
#include<MsTimer2.h>
const int RED = 2;
const int YELLOW = 3;
const int GREEN = 4;
int s,rTime=20,gTime=15,yTime=3;
int flagr=1,flagy=0,flagg=0;
void setup() {
pinMode(RED,OUTPUT);
pinMode(YELLOW,OUTPUT);
pinMode(GREEN,OUTPUT);
digitalWrite(RED,LOW);
digitalWrite(YELLOW,LOW);
digitalWrite(GREEN,LOW);
MsTimer2::set(1000,tim);
MsTimer2::start();
Serial.begin(9600);
s = rTime;
}
void tim()
{
s--;
Serial.println(s);
}
void loop()
{
if(s >=0 && flagr==1)
{
digitalWrite(RED,HIGH);
}
else
{
flagr = 0;
flagg = 1;
s = gTime;
digitalWrite(RED,LOW);
}
if(s>=0 && flagg==1)
{
digitalWrite(GREEN,HIGH);
}
else
{
flagg = 0;
flagy = 1;
s = yTime;
digitalWrite(GREEN,LOW);
}
if(s >=0 && flagy==1)
{
digitalWrite(YELLOW,HIGH);
}
else
{
flagy = 0;
flagr = 1;
s = rTime;
digitalWrite(YELLOW,LOW);
}
}
=====================================================================
#include<MsTimer2.h>
#define RED 2
#define YELLOW 3
#define GREEN 4
int s,rTime=20,gTime=15,yTime=3;
int flagr=1,flagy=0,flagg=0;
void setup() {
pinMode(RED,OUTPUT);
pinMode(YELLOW,OUTPUT);
pinMode(GREEN,OUTPUT);
digitalWrite(RED,LOW);
digitalWrite(YELLOW,LOW);
digitalWrite(GREEN,LOW);
MsTimer2::set(1000,tim);
MsTimer2::start();
Serial.begin(9600);
s = rTime;
}
void tim()
{
s--;
Serial.println(s);
}
void loop()
{
while(s>0)
{
digitalWrite(RED,HIGH);
}
flagr = 0;
flagg = 1;
digitalWrite(RED,LOW);
s = gTime;
while(s>0 &&flagg==1)
{
digitalWrite(GREEN,HIGH);
}
flagg = 0;
flagy = 1;
digitalWrite(GREEN,LOW);
s = yTime;
while(s>0 &&flagy==1)
{
digitalWrite(YELLOW,HIGH);
}
flagy = 0;
flagr = 1;
digitalWrite(YELLOW,LOW);
s = rTime;
}
uj5u.com熱心網友回復:
這還是加列印調吧,純看不行轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/108518.html
標籤:單片機/工控
下一篇:一位萌新的苦惱
