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

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

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2022-6-21 08:23
  • 签到天数: 2 天

    [LV.1]

    发表于 2021-12-15 15:42:52 | 显示全部楼层 |阅读模式

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

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

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

    Arduino C/C++-使用Arduino IDE开发环境编写的Hifive1开发板演示程序(Demo)risc-v单片机中文社区(1)

    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. }
    复制代码





    上一篇:Hifive1(RISC-V)开发板在Arduino IDE中的配置方法
    下一篇:[2023发布] Arduino UNO R3时隔13年后,推出新版Arduino UNO R4
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

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


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

    GMT+8, 2024-4-26 02:01 , Processed in 0.683950 second(s), 48 queries .

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