Pico; SD, Zeitstempel, PlatformIO

OP #7689292
Lesenswert?

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

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren