はじめに
これは自分用の記録です。
Boardは "Arduino Mbed OS by RP2040 Board by arduino" INPUT_PULLUP動作せず。
Boardは "Raspberry Pi Pico/RP2040/RP2350 by Earle F. Philhower, III "を使用
環境のURLsに、以下を追加
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
マニュアルは、
https://arduino-pico.readthedocs.io/en/latest/rp2040.html
事前準備
USB-COMボード
https://circuitpython.org/board/raspberry_pi_pico/ からUF2ファイルをダウンロード
Bootを押しながらPCに接続
RP2050 のドライブにUF2ファイルをドラッグ&ドロップ
書込みが出来なくなった場合
Bootモードで書き込み
template1(WDT)
//#include "mbed.h"
#define SW1 2
#define SW2 3
#define SW3 4
#define SW4 5
#define LED1 6
#define LED2 7
#define LED3 8
#define LED4 9
#define DO1 10
#define DO2 11
#define DO3 12
#define DO4 13
volatile bool MODE1 = false;
volatile bool MODE2 = false;
volatile bool MODE3 = false;
volatile bool MODE4 = false;
//mbed::Watchdog &wdt = mbed::Watchdog::get_instance();
void isr1(void) {
Serial.println("push1");
MODE1 = !MODE1;
digitalWrite(LED1, MODE1);
}
void isr2(void) {
Serial.println("push2");
MODE2 = !MODE2;
digitalWrite(LED2, MODE2);
}
void isr3(void) {
Serial.println("push3");
MODE3 = !MODE3;
digitalWrite(LED3, MODE3);
}
void isr4(void) {
Serial.println("push4");
MODE4 = !MODE4;
digitalWrite(LED4, MODE4);
}
void setup() {
Serial.begin(9600);
pinMode(SW1, INPUT_PULLUP);
pinMode(SW2, INPUT_PULLUP);
pinMode(SW3, INPUT_PULLUP);
pinMode(SW4, INPUT_PULLUP);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(DO1, OUTPUT);
pinMode(DO2, OUTPUT);
pinMode(DO3, OUTPUT);
pinMode(DO4, OUTPUT);
attachInterrupt(digitalPinToInterrupt(SW1), isr1, FALLING);
attachInterrupt(digitalPinToInterrupt(SW2), isr2, FALLING);
attachInterrupt(digitalPinToInterrupt(SW3), isr3, FALLING);
attachInterrupt(digitalPinToInterrupt(SW4), isr4, FALLING);
interrupts();
//wdt.start(1000);
rp2040.wdt_begin(1000);
}
void loop() {
//wdt.kick();
rp2040.wdt_reset();
digitalWrite(DO1, MODE1);
digitalWrite(DO2, MODE2);
digitalWrite(DO3, MODE3);
digitalWrite(DO4, MODE4);
Serial.print(millis());
Serial.print(" Mode1=");
Serial.print(MODE1);
Serial.print(" Mode2=");
Serial.print(MODE2);
Serial.print(" Mode3=");
Serial.print(MODE3);
Serial.print(" Mode4=");
Serial.println(MODE4);
delay(500);
}