Benutzt man den Pico mit der Original Arduino-Platform (mbed), so stehen
einige Funktionen/Bibliotheken nicht ohne Zutun zur Verfügung.
Benötigt man die SD-Funktionen für eine per SPI angeschaltete SD-Karte,
so hat man eine gute Library, die von Bill Greiman's SdFat abgeleitet
wurde:
https://github.com/khoih-prog/RP2040_SD
Die Library wird bei einem vorhandenen PlatformIO-Projekt direkt
hinzugefüügt, wenn man die Zeile
lib_deps = khoih-prog/RP2040_SD
in platform.ini einfügt.
Beim nächsten Build werden die notwendigen Dateien aus dem Internet
heruntergeladen, und stehen dann unter
... \PlatformIO\<Ordner>\.pio\libdeps\pico\RP2040_SD,
wenn die Zeile unter [env:pico] eingefügt wurde.
Leider kann man nicht direkt die Zeitstempel der Dateien herausbekommen.
Es fehlen die Funktionen getLastWrite() und getCreationTime() in
RP2040_SD.h.
Ich habe diese Funktionen hinzugefügt und dazu entsprechend RP2040_SD.h
und File.hpp angepaßt.
Sollen neue Dateien mit Zeitstempel erzeugt werden, so muß man noch eine
CallBack Funktion erstellen und den folgenden Aufruf machen:
RP2040_SdFile::dateTimeCallback(DateTimeCallbackSD);
Die Funktion DateTimeCallbackSD sieht z.B. so aus:
1 | void DateTimeCallbackSD(uint16_t* date, uint16_t* time)
|
2 | {
|
3 | *date = FAT_DATE(Jhr+2000,Monat,Tag);
|
4 | *time = FAT_TIME(Std,Min,Sek);
|
5 | }
|
Die Variablen Tag,Monat,.. müssen natürlich die aktuellen Zeitwerte
enthalten.
Die geänderten Dateien der Lib befinden sich in der beigefügten
zip-Datei und dazu ein Beispiel, wie sie genutzt werden können. Das
Beipiel ist nicht vollständig, sondern soll nur das Prinzip darstellen.
Harald