Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d51fa99b70 | ||
|
|
2c97bffc54 | ||
|
|
626b62c413 | ||
|
|
25b9ca821e | ||
|
|
d5ddf4cd7f | ||
|
|
d43dcbcf8c | ||
|
|
1fdc0ab7c1 | ||
|
|
9408b7e2c4 |
+3
-3
@@ -3808,7 +3808,7 @@ arduino_nano_connect.vid.0=0x2341
|
||||
arduino_nano_connect.pid.0=0x0058
|
||||
arduino_nano_connect.build.usbpid=-DSERIALUSB_PID=0x0058
|
||||
arduino_nano_connect.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
arduino_nano_connect.build.board=ARDUINO_NANO_RP2040_CONNECT
|
||||
arduino_nano_connect.build.board=NANO_RP2040_CONNECT
|
||||
arduino_nano_connect.build.mcu=cortex-m0plus
|
||||
arduino_nano_connect.build.variant=arduino_nano_connect
|
||||
arduino_nano_connect.upload.tool=uf2conv
|
||||
@@ -4019,7 +4019,7 @@ arduino_nano_connectpicoprobe.vid.0=0x2341
|
||||
arduino_nano_connectpicoprobe.pid.0=0x0004
|
||||
arduino_nano_connectpicoprobe.build.usbpid=-DSERIALUSB_PID=0x0058
|
||||
arduino_nano_connectpicoprobe.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
arduino_nano_connectpicoprobe.build.board=ARDUINO_NANO_RP2040_CONNECT
|
||||
arduino_nano_connectpicoprobe.build.board=NANO_RP2040_CONNECT
|
||||
arduino_nano_connectpicoprobe.build.mcu=cortex-m0plus
|
||||
arduino_nano_connectpicoprobe.build.variant=arduino_nano_connect
|
||||
arduino_nano_connectpicoprobe.upload.tool=picoprobe
|
||||
@@ -4230,7 +4230,7 @@ arduino_nano_connectpicodebug.vid.0=0x1209
|
||||
arduino_nano_connectpicodebug.pid.0=0x2488
|
||||
arduino_nano_connectpicodebug.build.usbpid=-DSERIALUSB_PID=0x0058
|
||||
arduino_nano_connectpicodebug.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
arduino_nano_connectpicodebug.build.board=ARDUINO_NANO_RP2040_CONNECT
|
||||
arduino_nano_connectpicodebug.build.board=NANO_RP2040_CONNECT
|
||||
arduino_nano_connectpicodebug.build.mcu=cortex-m0plus
|
||||
arduino_nano_connectpicodebug.build.variant=arduino_nano_connect
|
||||
arduino_nano_connectpicodebug.upload.tool=picodebug
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
/*
|
||||
Millis() for the Raspberry Pi Pico RP2040
|
||||
|
||||
Copyright (c) 2021 Earle F. Philhower, III <earlephilhower@yahoo.com>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <pico/time.h>
|
||||
|
||||
extern "C" unsigned long millis() {
|
||||
return to_ms_since_boot(get_absolute_time());
|
||||
}
|
||||
|
||||
extern "C" unsigned long micros() {
|
||||
return time_us_32();
|
||||
}
|
||||
+1
-1
Submodule libraries/Keyboard updated: dcc1a556bf...e63a5f78e4
@@ -13,6 +13,25 @@
|
||||
// How large of a file to test
|
||||
#define TESTSIZEKB 256
|
||||
|
||||
// Format speed in bytes/second. Static buffer so not re-entrant safe
|
||||
const char *rate(unsigned long start, unsigned long stop, unsigned long bytes) {
|
||||
static char buff[64];
|
||||
if (stop == start) {
|
||||
strcpy_P(buff, PSTR("Inf b/s"));
|
||||
} else {
|
||||
unsigned long delta = stop - start;
|
||||
float r = 1000.0 * (float)bytes / (float)delta;
|
||||
if (r >= 1000000.0) {
|
||||
sprintf_P(buff, PSTR("%0.2f MB/s"), r / 1000000.0);
|
||||
} else if (r >= 1000.0) {
|
||||
sprintf_P(buff, PSTR("%0.2f KB/s"), r / 1000.0);
|
||||
} else {
|
||||
sprintf_P(buff, PSTR("%d bytes/s"), (int)r);
|
||||
}
|
||||
}
|
||||
return buff;
|
||||
}
|
||||
|
||||
void DoTest(FS *fs) {
|
||||
if (!fs->format()) {
|
||||
Serial.printf("Unable to format(), aborting\n");
|
||||
@@ -29,7 +48,7 @@ void DoTest(FS *fs) {
|
||||
}
|
||||
|
||||
Serial.printf("Creating %dKB file, may take a while...\n", TESTSIZEKB);
|
||||
long start = millis();
|
||||
unsigned long start = millis();
|
||||
File f = fs->open("/testwrite.bin", "w");
|
||||
if (!f) {
|
||||
Serial.printf("Unable to open file for writing, aborting\n");
|
||||
@@ -41,11 +60,11 @@ void DoTest(FS *fs) {
|
||||
}
|
||||
}
|
||||
f.close();
|
||||
long stop = millis();
|
||||
Serial.printf("==> Time to write %dKB in 256b chunks = %ld milliseconds\n", TESTSIZEKB, stop - start);
|
||||
unsigned long stop = millis();
|
||||
Serial.printf("==> Time to write %dKB in 256b chunks = %lu milliseconds\n", TESTSIZEKB, stop - start);
|
||||
|
||||
f = fs->open("/testwrite.bin", "r");
|
||||
Serial.printf("==> Created file size = %d\n", f.size());
|
||||
Serial.printf("==> Created file size = %zu\n", f.size());
|
||||
f.close();
|
||||
|
||||
Serial.printf("Reading %dKB file sequentially in 256b chunks\n", TESTSIZEKB);
|
||||
@@ -58,7 +77,7 @@ void DoTest(FS *fs) {
|
||||
}
|
||||
f.close();
|
||||
stop = millis();
|
||||
Serial.printf("==> Time to read %dKB sequentially in 256b chunks = %ld milliseconds = %ld bytes/s\n", TESTSIZEKB, stop - start, TESTSIZEKB * 1024 / (stop - start) * 1000);
|
||||
Serial.printf("==> Time to read %dKB sequentially in 256b chunks = %lu milliseconds = %s\n", TESTSIZEKB, stop - start, rate(start, stop, TESTSIZEKB * 1024));
|
||||
|
||||
Serial.printf("Reading %dKB file MISALIGNED in flash and RAM sequentially in 256b chunks\n", TESTSIZEKB);
|
||||
start = millis();
|
||||
@@ -71,8 +90,7 @@ void DoTest(FS *fs) {
|
||||
}
|
||||
f.close();
|
||||
stop = millis();
|
||||
Serial.printf("==> Time to read %dKB sequentially MISALIGNED in flash and RAM in 256b chunks = %ld milliseconds = %ld bytes/s\n", TESTSIZEKB, stop - start, TESTSIZEKB * 1024 / (stop - start) * 1000);
|
||||
|
||||
Serial.printf("==> Time to read %dKB sequentially MISALIGNED in flash and RAM in 256b chunks = %lu milliseconds = %s\n", TESTSIZEKB, stop - start, rate(start, stop, TESTSIZEKB * 1024));
|
||||
|
||||
Serial.printf("Reading %dKB file in reverse by 256b chunks\n", TESTSIZEKB);
|
||||
start = millis();
|
||||
@@ -91,8 +109,7 @@ void DoTest(FS *fs) {
|
||||
}
|
||||
f.close();
|
||||
stop = millis();
|
||||
Serial.printf("==> Time to read %dKB in reverse in 256b chunks = %ld milliseconds = %ld bytes/s\n", TESTSIZEKB, stop - start, TESTSIZEKB * 1024 / (stop - start) * 1000);
|
||||
|
||||
Serial.printf("==> Time to read %dKB in reverse in 256b chunks = %lu milliseconds = %s\n", TESTSIZEKB, stop - start, rate(start, stop, TESTSIZEKB * 1024));
|
||||
|
||||
Serial.printf("Writing 64K file in 1-byte chunks\n");
|
||||
start = millis();
|
||||
@@ -102,7 +119,7 @@ void DoTest(FS *fs) {
|
||||
}
|
||||
f.close();
|
||||
stop = millis();
|
||||
Serial.printf("==> Time to write 64KB in 1b chunks = %ld milliseconds = %ld bytes/s\n", stop - start, 65536 / (stop - start) * 1000);
|
||||
Serial.printf("==> Time to write 64KB in 1b chunks = %lu milliseconds = %s\n", stop - start, rate(start, stop, 65536));
|
||||
|
||||
Serial.printf("Reading 64K file in 1-byte chunks\n");
|
||||
start = millis();
|
||||
@@ -113,9 +130,7 @@ void DoTest(FS *fs) {
|
||||
}
|
||||
f.close();
|
||||
stop = millis();
|
||||
Serial.printf("==> Time to read 64KB in 1b chunks = %ld milliseconds = %ld bytes/s\n", stop - start, 65536 / (stop - start) * 1000);
|
||||
|
||||
|
||||
Serial.printf("==> Time to read 64KB in 1b chunks = %lu milliseconds = %s\n", stop - start, rate(start, stop, 65536));
|
||||
}
|
||||
|
||||
void setup() {
|
||||
@@ -124,6 +139,7 @@ void setup() {
|
||||
Serial.printf("Beginning test\n");
|
||||
Serial.flush();
|
||||
DoTest(&TESTFS);
|
||||
Serial.println("done");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
Submodule libraries/LittleFS/lib/littlefs updated: 1863dc7883...ead50807f1
+1
-1
Submodule libraries/Mouse updated: 1b39fd21e5...a6f08ea8b7
+1
-1
Submodule libraries/SdFat updated: 3a6b688b1b...43a65b42d5
@@ -146,7 +146,7 @@ void TwoWire::onIRQ() {
|
||||
_i2c->hw->clr_start_det;
|
||||
}
|
||||
if (_i2c->hw->intr_stat & (1 << 9)) {
|
||||
if (_onReceiveCallback) {
|
||||
if (_onReceiveCallback && _buffLen) {
|
||||
_onReceiveCallback(_buffLen);
|
||||
}
|
||||
_buffLen = 0;
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "framework-arduinopico",
|
||||
"version": "1.10913.0",
|
||||
"version": "1.10914.0",
|
||||
"description": "Arduino Wiring-based Framework (RPi Pico RP2040)",
|
||||
"keywords": [
|
||||
"framework",
|
||||
|
||||
+1
-1
@@ -163,7 +163,7 @@ MakeBoard("adafruit_stemmafriend", "Adafruit", "STEMMA Friend RP2040", "0x239a",
|
||||
MakeBoard("adafruit_trinkeyrp2040qt", "Adafruit", "Trinkey RP2040 QT", "0x239a", "0x8109", 250, "ADAFRUIT_TRINKEYQT_RP2040", 8, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("adafruit_macropad2040", "Adafruit", "MacroPad RP2040", "0x239a", "0x8107", 250, "ADAFRUIT_MACROPAD_RP2040", 8, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("adafruit_kb2040", "Adafruit", "KB2040", "0x239a", "0x8105", 250, "ADAFRUIT_KB2040_RP2040", 8, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("arduino_nano_connect", "Arduino", "Nano RP2040 Connect", "0x2341", "0x0058", 250, "ARDUINO_NANO_RP2040_CONNECT", 16, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("arduino_nano_connect", "Arduino", "Nano RP2040 Connect", "0x2341", "0x0058", 250, "NANO_RP2040_CONNECT", 16, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("cytron_maker_nano_rp2040", "Cytron", "Maker Nano RP2040", "0x2e8a", "0x100f", 250, "CYTRON_MAKER_NANO_RP2040", 2, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("cytron_maker_pi_rp2040", "Cytron", "Maker Pi RP2040", "0x2e8a", "0x1000", 250, "CYTRON_MAKER_PI_RP2040", 2, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("sparkfun_promicrorp2040", "SparkFun", "ProMicro RP2040", "0x1b4f", "0x0026", 250, "SPARKFUN_PROMICRO_RP2040", 16, "boot2_generic_03h_4_padded_checksum")
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
#include "nina_pins.h"
|
||||
|
||||
NinaPin LEDR(27);
|
||||
NinaPin LEDG(25);
|
||||
NinaPin LEDB(26);
|
||||
NinaPin A4(34);
|
||||
NinaPin A5(39);
|
||||
NinaPin A6(36);
|
||||
NinaPin A7(35);
|
||||
@@ -8,41 +8,49 @@
|
||||
******************************************************************************/
|
||||
|
||||
#include "Arduino.h"
|
||||
//#include "WiFiNINA.h"
|
||||
/******************************************************************************
|
||||
* PREPROCESSOR-MAGIC
|
||||
******************************************************************************/
|
||||
|
||||
#if __has_include("WiFiNINA.h")
|
||||
# define NINA_ATTRIBUTE
|
||||
#else
|
||||
# define NINA_ATTRIBUTE __attribute__ ((error("Please include WiFiNINA.h to use this pin")))
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* TYPEDEF
|
||||
******************************************************************************/
|
||||
|
||||
enum NinaPin {
|
||||
LEDR = 27,
|
||||
LEDG = 25,
|
||||
LEDB = 26//,
|
||||
//A4 = 34,
|
||||
//A5 = 39,
|
||||
//A6 = 36,
|
||||
//A7 = 35
|
||||
int getAnalogReadResolution();
|
||||
|
||||
class NinaPin {
|
||||
public:
|
||||
NinaPin(int _pin) : pin(_pin) {};
|
||||
int get() {
|
||||
return pin;
|
||||
};
|
||||
int analogReadResolution() {
|
||||
return getAnalogReadResolution();
|
||||
};
|
||||
bool operator== (NinaPin const & other) const {
|
||||
return pin == other.pin;
|
||||
}
|
||||
//operator int() = delete;
|
||||
__attribute__ ((error("Change me to a #define"))) operator int();
|
||||
private:
|
||||
int pin;
|
||||
};
|
||||
|
||||
extern NinaPin LEDR;
|
||||
extern NinaPin LEDG;
|
||||
extern NinaPin LEDB;
|
||||
extern NinaPin A4;
|
||||
extern NinaPin A5;
|
||||
extern NinaPin A6;
|
||||
extern NinaPin A7;
|
||||
|
||||
#define NINA_PINS_AS_CLASS
|
||||
|
||||
/******************************************************************************
|
||||
* FUNCTION DECLARATION
|
||||
******************************************************************************/
|
||||
|
||||
void NINA_ATTRIBUTE pinMode (NinaPin pin, PinMode mode);
|
||||
PinStatus NINA_ATTRIBUTE digitalRead (NinaPin pin);
|
||||
void NINA_ATTRIBUTE digitalWrite(NinaPin pin, PinStatus value);
|
||||
int NINA_ATTRIBUTE analogRead (NinaPin pin);
|
||||
void NINA_ATTRIBUTE analogWrite (NinaPin pin, int value);
|
||||
|
||||
#undef NINA_ATTRIBUTE
|
||||
void pinMode (NinaPin pin, PinMode mode);
|
||||
PinStatus digitalRead (NinaPin pin);
|
||||
void digitalWrite(NinaPin pin, PinStatus value);
|
||||
int analogRead (NinaPin pin);
|
||||
void analogWrite (NinaPin pin, int value);
|
||||
|
||||
#endif /* _NINA_PINS_ */
|
||||
|
||||
@@ -39,8 +39,6 @@ static const uint8_t A0 = (26u);
|
||||
static const uint8_t A1 = (27u);
|
||||
static const uint8_t A2 = (28u);
|
||||
static const uint8_t A3 = (29u);
|
||||
static const uint8_t A4 = (12u);
|
||||
static const uint8_t A5 = (13u);
|
||||
|
||||
// LEDs
|
||||
#define PIN_LED (D13)
|
||||
|
||||
Reference in New Issue
Block a user