【RISC-V】使用Arduino IDE开发环境编写的Hifive1开发板演示程序(Demo)。

                                               

RISC-V指令架构现在非常热,大有未来全球标准指令集之势。Hifive1是Sifive公司推出第一个商用RISC-V开发板,里面预装了一个三色发光二极管的颜色渐变的演示程序,但没有提供源代码,所以本人就仿照Hifive1开发板的演示效果,使用Arduino IDE写了这样一个模仿原效果的演示程序,如下供参考:

const int Interval = 50; //ms {1+}
const int MaxColorValue = 80; //{1..255}

const int PinCount = 3;
const int PinGreen = 3, PinBlue = 5, PinRed = 6;
const int ColorPin[PinCount] = {PinRed, PinGreen, PinBlue};

int CurPinNo = 0; //{0..2};
int ColorValue[PinCount] = {0, 0, 0};

int LastPinNo;
boolean Checked = false;

void setup() {
  for (int i=0; i<PinCount; i++) {pinMode(ColorPin[i], OUTPUT);}

  ColorValue[CurPinNo] = MaxColorValue;
  LastPinNo = CurPinNo - 1;
  if (LastPinNo < 0) {LastPinNo += PinCount;}

  Serial.begin(115200);
  for (int i=1; i<=4; i++) {
    if (Serial) {break;}
    delay(5);
  }
   
  Serial.println("");  
  Serial.println("                SIFIVE, INC.");
  Serial.println("");
  Serial.println("         5555555555555555555555555");
  Serial.println("        5555                   5555");
  Serial.println("       5555                     5555");
  Serial.println("      5555                       5555");
  Serial.println("     5555       5555555555555555555555");
  Serial.println("    5555       555555555555555555555555");
  Serial.println("   5555                             5555");
  Serial.println("  5555                               5555");
  Serial.println(" 5555                                 5555");
  Serial.println("5555555555555555555555555555          55555");
  Serial.println("  55555          555555555           55555");
  Serial.println("    55555          55555           55555");
  Serial.println("      55555          5           55555");
  Serial.println("        55555                  55555");
  Serial.println("          55555              55555");
  Serial.println("            55555          55555");
  Serial.println("             55555       55555");
  Serial.println("               55555   55555");
  Serial.println("                 555555555");
  Serial.println("                   55555");
  Serial.println("                     5");
  Serial.println("");
  Serial.println("              'led_fade' Demo");
  Serial.println("");
  Serial.println("55555555555555555555555555555555555555555555555");
  Serial.println("5555555 Are the LEDs Changing? [y/n]  555555555");
  Serial.println("55555555555555555555555555555555555555555555555");
}


void loop() {  
  for (int i=0; i<PinCount; i++) {
    analogWrite(ColorPin[i], 255 - ColorValue[i]); 
  }                       //0=Brightest, 255=Darkest;
  
  if (ColorValue[CurPinNo]== MaxColorValue) {
    if (++CurPinNo  >= PinCount) {CurPinNo  = 0;}
    if (++LastPinNo >= PinCount) {LastPinNo = 0;}
  }
  
  --ColorValue[LastPinNo];
  ++ColorValue[CurPinNo ];
  
  String Input = "";
  while (Serial.available() > 0){
    Input += (char) Serial.read();
    delay(5);
  }
  if (!Checked) {
    Input.toLowerCase();
    if (Input == "y") {
      Serial.println(Input);
      Serial.println("PASS");
      Checked = true;
    }  
    if (Input == "n") {
      Serial.println(Input);
      Serial.println("FAIL");
      Checked = true;
    }  
  }
  
  delay(Interval);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值