Binärdaten auf SD-Karte schreiben
|
13.03.2020, 15:39
Beitrag #9
|
|||
|
|||
RE: Binärdaten auf SD-Karte schreiben
Ist das Bild nicht etwas groß?
Das müsste man austesten. Immer ein Byte von Serial nehmen und zur SD schreiben. Die SD-Lib hat einen Puffer von 512 Byte (Sektorgröße der SD). Vorher wohl den Dateinamen und die genaue Größe in Byte übertragen. Hast Du Dir mal die SD-Verlängerungen angeschaut? Welchen Arduino nutzt Du? Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
13.03.2020, 16:21
Beitrag #10
|
|||
|
|||
RE: Binärdaten auf SD-Karte schreiben
(13.03.2020 15:39)Tommy56 schrieb: Ist das Bild nicht etwas groß? Das Bild hat eine Auflösung von 284 x 210. Wenn es kleiner wird kann man kaum was erkennen. Seriell kann man vergessen. Da ich das TFT_HX8357 benutze, ist direkt auf den Mega gesteckt, geht eine SD-Verlängerung nicht. Die Programmgröße liegt z.Z. bei 98 K (kompilliert), für die Enladekurven benötige ich ein Integer-Array 6 X 300. Das Programm ist so geschrieben, dass es auf dem Mega und Aduino-Due läuft. Ingo |
|||
13.03.2020, 16:34
Beitrag #11
|
|||
|
|||
RE: Binärdaten auf SD-Karte schreiben
Ok, wenn die SD-Verlängerung und serielle Übertragung nicht gehen, musst Du halt den Weg über neu kompilieren gehen.
Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
13.03.2020, 16:50
Beitrag #12
|
|||
|
|||
RE: Binärdaten auf SD-Karte schreiben
(13.03.2020 16:34)Tommy56 schrieb: Ok, wenn die SD-Verlängerung und serielle Übertragung nicht gehen, musst Du halt den Weg über neu kompilieren gehen. Die Binärdaten liegen auf dem PC - verbunden sind Arduino und PC über die Arduini-IDE. Wie soll das gehen? Kennst du ein Programm, dass seriell Daten an den Arduino weitergeben kann? |
|||
13.03.2020, 17:06
(Dieser Beitrag wurde zuletzt bearbeitet: 13.03.2020 17:17 von Tommy56.)
Beitrag #13
|
|||
|
|||
RE: Binärdaten auf SD-Karte schreiben
(13.03.2020 16:50)ingo46 schrieb: Kennst du ein Programm, dass seriell Daten an den Arduino weitergeben kann?Das kannst Du als Konsolenprogramm in einer Sprache Deiner Wahl doch selbst schreiben. Gruß Tommy Edit: oder mit etwas weniger Komfort (wobei man das in einer CMD-Datei auch ausbauen kann für sendAn): Code: MODE COMx:115200,N,8 Edit 2: Für Portnummern >=10 Code: copy yourfile.ext \\.\COM21 /B "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
13.03.2020, 18:14
Beitrag #14
|
|||
|
|||
RE: Binärdaten auf SD-Karte schreiben
Hallo Tommy,
Problem gelöst - und das an einem Tag. Test ergfolgreich. Ich muss mir nur noch Gedanken machen, wie ich den FileNamen übergebe und alles in den Akku-Tester übernehmen. Die Übertragungsgeschwindigkeit muss auch noch getestet werden, habe mit 9600 gestetet, da ich noch nicht weiss, wie sich die TFT-Ansteuerung (über SPI) verhält. Danke für deine Geduld und Hilfe. Gruß Ingo |
|||
13.03.2020, 18:19
(Dieser Beitrag wurde zuletzt bearbeitet: 13.03.2020 18:26 von Tommy56.)
Beitrag #15
|
|||
|
|||
RE: Binärdaten auf SD-Karte schreiben
Die hat nichts mit der seriellen Geschwindigkeit zu tun. Die kannst Du problemlos auf 115200 setzen.
Gruß Tommy Edit: Schau Dir mal den Artikel an. Dateiname und Größe kannst Du evtl. als Text mit LineFeed ('\n') abgeschlossen kopieren. "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
13.03.2020, 20:46
Beitrag #16
|
|||
|
|||
RE: Binärdaten auf SD-Karte schreiben
Ich habe das unter Win10 mal probiert. Das geht grundsätzlich.
Die komplette Übertragung konnte ich nicht testen, da dann der Port blockiert war und ich keinen USB-Seriell-Wandler habe. Wenn es hilft hier die Batch-Datei: ::@echo off set filename=%1% for %%F in (%filename%) do set groesse=%%~zF for %%F in (%filename%) do set name=%%~nxF echo %groesse%;%name% MODE \\.\COM3:115200,N,8 echo %groesse%;%name% > \\.\COM3: pause [/code] Sie sendet Länge;Name.ext an die COM-Schnittstelle. Eine Verknüpfung der CMD-Datei nach C:\Users\NAME\AppData\Roaming\Microsoft\Windows\SendTo kopieren. Am ; trennen, den ersten mit '\0' terminieren und mit atol in einen unsigned long (sicher ist sicher) wandeln und schon sind beide Werte vorhanden. Die Einleseroutine bis '\n' findet siich hier. Die Trennung habe ich angefügt. Code: // Länge Nutzdaten + 1 Es ist schon erstaunlich, was heute mit Bordmitteln von Win10 machbar ist. Mit Powerscript wäre es noch komfortabler machbar (da gibt es auch GUIO-Erweiterungen) oder mit Processing (JAVA) Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste