离线
TA的每日心情 | 奋斗 2022-6-21 08:23 |
---|
签到天数: 2 天 [LV.1]
|
有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 塞巴斯蒂安 于 2021-12-15 15:42 编辑
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);
- }
复制代码 完
|
上一篇: Hifive1(RISC-V)开发板在Arduino IDE中的配置方法下一篇: [2023发布] Arduino UNO R3时隔13年后,推出新版Arduino UNO R4
|