查看: 338|回复: 0
收起左侧

使用Arduino IDE开发环境编写的Hifive1开发板演示程序(Demo)

[复制链接]
发表于 2021-12-15 15:42:52 | 显示全部楼层 |阅读模式

有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 塞巴斯蒂安 于 2021-12-15 15:42 编辑

使用Arduino IDE开发环境编写的Hifive1开发板演示程序.png

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

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

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

  8. int LastPinNo;
  9. boolean Checked = false;

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

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

  15.   Serial.begin(115200);
  16.   for (int i=1; i<=4; i++) {
  17.     if (Serial) {break;}
  18.     delay(5);
  19.   }
  20.    
  21.   Serial.println("");  
  22.   Serial.println("                SIFIVE, INC.");
  23.   Serial.println("");
  24.   Serial.println("         5555555555555555555555555");
  25.   Serial.println("        5555                   5555");
  26.   Serial.println("       5555                     5555");
  27.   Serial.println("      5555                       5555");
  28.   Serial.println("     5555       5555555555555555555555");
  29.   Serial.println("    5555       555555555555555555555555");
  30.   Serial.println("   5555                             5555");
  31.   Serial.println("  5555                               5555");
  32.   Serial.println(" 5555                                 5555");
  33.   Serial.println("5555555555555555555555555555          55555");
  34.   Serial.println("  55555          555555555           55555");
  35.   Serial.println("    55555          55555           55555");
  36.   Serial.println("      55555          5           55555");
  37.   Serial.println("        55555                  55555");
  38.   Serial.println("          55555              55555");
  39.   Serial.println("            55555          55555");
  40.   Serial.println("             55555       55555");
  41.   Serial.println("               55555   55555");
  42.   Serial.println("                 555555555");
  43.   Serial.println("                   55555");
  44.   Serial.println("                     5");
  45.   Serial.println("");
  46.   Serial.println("              'led_fade' Demo");
  47.   Serial.println("");
  48.   Serial.println("55555555555555555555555555555555555555555555555");
  49.   Serial.println("5555555 Are the LEDs Changing? [y/n]  555555555");
  50.   Serial.println("55555555555555555555555555555555555555555555555");
  51. }


  52. void loop() {  
  53.   for (int i=0; i<PinCount; i++) {
  54.     analogWrite(ColorPin[i], 255 - ColorValue[i]);
  55.   }                       //0=Brightest, 255=Darkest;
  56.   
  57.   if (ColorValue[CurPinNo]== MaxColorValue) {
  58.     if (++CurPinNo  >= PinCount) {CurPinNo  = 0;}
  59.     if (++LastPinNo >= PinCount) {LastPinNo = 0;}
  60.   }
  61.   
  62.   --ColorValue[LastPinNo];
  63.   ++ColorValue[CurPinNo ];
  64.   
  65.   String Input = "";
  66.   while (Serial.available() > 0){
  67.     Input += (char) Serial.read();
  68.     delay(5);
  69.   }
  70.   if (!Checked) {
  71.     Input.toLowerCase();
  72.     if (Input == "y") {
  73.       Serial.println(Input);
  74.       Serial.println("PASS");
  75.       Checked = true;
  76.     }  
  77.     if (Input == "n") {
  78.       Serial.println(Input);
  79.       Serial.println("FAIL");
  80.       Checked = true;
  81.     }  
  82.   }
  83.   
  84.   delay(Interval);
  85. }
复制代码

全球首家只专注于RISC-V单片机行业应用的中文网站
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

关闭

RISC-V单片机中文网上一条 /2 下一条


版权及免责声明|RISC-V单片机中文网

GMT+8, 2025-8-31 11:35 , Processed in 0.234983 second(s), 34 queries .

快速回复 返回顶部 返回列表