presmervanie dát v počítači z COM do súboru
Moderátor: Moderátoři
Co bych ještě vyzkoušel, pokud tedy máš k dispozici jiný UART/USB konvertor a Arduino to umožňuje, tak data pustit na UART, co je vyvedený na piny a ne interně do USB a do počítače data poslat přes něj. Bastlit hw bys mohl alternativně třeba pro to, že se ti s Arduinem nedaří realizovat zamýšlený záměr? Je otázkou, jaké máš prioroty, jestli jednorázově vyčíst paměť s minimem opruzu kolem, nebo porazit problém s přenosem.
Krátce před tím, než se to rozbilo, tak to ještě fungovalo...
Možná by tomu pomohlo použít Serial.flush(); https://www.baldengineer.com/when-do-yo ... flush.html
Krátce před tím, než se to rozbilo, tak to ještě fungovalo...
Stáhni si Putty, nejlépe v portable verzi (nemusíš jí instalovat). Otevři si nový sériový terminál. Uvidíš co ti z portu přijde. Když budeš spokojen, tak v menu vyber "Copy All to Clipboard".
Edit: mi to došlo, problém není v bufferu portu ale ve souborovém bufferu. Zkus to s tím MODE, TYPE. Dej si nějak vědět že už máš přenesená data (např. rozsviť LEDku) a ten příkaz TYPE ukonči stiskem Ctrl+Pause. Soubor se uzavře správně (na rozdíl od Ctrl+C).
Edit: mi to došlo, problém není v bufferu portu ale ve souborovém bufferu. Zkus to s tím MODE, TYPE. Dej si nějak vědět že už máš přenesená data (např. rozsviť LEDku) a ten příkaz TYPE ukonči stiskem Ctrl+Pause. Soubor se uzavře správně (na rozdíl od Ctrl+C).
To je len taký pokus predtým, než začnem naostro čítať tú pamäť.lesana87 píše:Ale ty ta data posíláš textově nebo co dělá to HEX v Serial.println()? Ctrl+C z okna Arduino monitoru nefunguje?
Napríklad Serial.println(255,HEX); pošle hodnotu 255 ako text FF a za tým ešte znak pre koniec riadku.
Serial.println(255,DEC); pošle hodnotu 255 ako text 255 a za tým znak pre koniec riadku. Vyzerá to divne, ale takto to niekto naprogramoval do tej arduinovej Serial knižnice.
Ja tam nakoniec chem mať Serial.write(data), čo pošle surové dáta. Tie však Arduino IDE serial monitor nevie zobraziť. Presmerovaním COM5 do súboru v prikazovom riadku sa však dajú tieto raw dáta jednoducho zapísať. Pred pár dňami som takto načítal obsah inej pamäte. http://www.ebastlirna.cz/modules.php?na ... ic&t=96927 Aj preto som dnes taký nespokojný, lebo minule som nevidel v komunikáciii po seriovej linke najmenší problém.
Pred chvíľou som si bol posedieť v malej miestnosti a pri tom mi došlo, že asi nemám problém. Buffer má 512 bajtov a to je presne veľkosť tej pamäte 93C66C, ktorú chcem skopírovať. Pri tom pokuse s posielaním skúšobných dát v tvare textu sa preniesla polovica dát, čo vyšlo na 512 bajtov a druhá polovica nie, lebo posledné hodnoty začínali nulou (0F...00) ktorú ten println vynecháva. Takže druhej polovici dát chýbalo do zaplnenia buffera 16 bajtov. Ak však budem posielať raw dáta, tak to bude presne 512 bajtov a malo by sa to zapísať. No a minule som posielal 524288 bajtov, čo je násobok 512, takže problém nebol. Tiež som skúšal posielať aj v textovej forme, ale tam som veľkosť súboru nekontroloval. Užitočné dáta boli aj tak len na začiatku pamäte.