SD kártya eltávilítása és újrainicializálása

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 9768
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: Robert » 2017. november 22. szerda, 7:52

while (!Serial) {
; } // ERRE A PONTOS VESSZŐRE NEM TUDOM MI SZÜKSÉG VOLT , DE NEM ÉN VOLTAM
// A FORDÍTÓT NEM ZAVARTA


Ha Leonardo/Pro Micro lapot használsz hagysz időt az USB inicializálásnak és a belső sorosport kiépülésének.


Tippek: Arduino - minták - SD alatt van a kiír-visszaolvas. DE:
Az sdcard.init(pin); esetén az adott pin-t tedd kimenetté (pinMode(pin, output); a setup()ban az sdcard.init(pin); előtt)! A legtöbb Arduino változatban a _bemenetre_ hagyott lábra adja ki a H illetve a L szintet.

500 mérés az nem 510 db?
Külön file-ba megy és a FAT16 esetén a gyökérkönyvtárba?
-> a FAT limitje ez. Root-ba max 512 bejegyzés lehet amiből a . jelenti az adott könyvtárat és a .. meg a felettes könyvtárat.

A kártyaolvasód igaz végez jelszintillesztést? Nem közvetlen I/O módban hajtod direktben a SD kártyát?
http://www.tavir.hu - a gazda :)

apeape
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2017. november 2. csütörtök, 11:01

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: apeape » 2017. november 23. csütörtök, 9:25

Robert !
Tegnap este 23 óra körül végre megoldódott . Végül az " Arduino index fórumon " kaptam segítséget , ahol a 3250. hozzászólással indítottam .Most reggel akartam ide a Tavir fórumba írni, hogy senkit ne sétáltassak meg feleslegesen , mert az nem szép dolog. Most túl gyors voltál.
Ezt a programot kaptam :

Kód: Egész kijelölése

,---,-,-,-----
/*
SD card read/write

This example shows how to read and write data to and from an SD card file
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)                                              // ÁTTETTEM D10LÁBRA

created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe

This example code is in the public domain.

*/

#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}


Serial.print("Initializing SD card...");

if (!SD.begin(10)) {                                                                  // ÁTÍRTAM    10 re
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");

// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
myFile = SD.open("datalog.csv", FILE_WRITE);

// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to datalog.csv...");
myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening datalog.csv");
}

// re-open the file for reading:
myFile = SD.open("datalog.csv");
if (myFile) {
Serial.println("datalog.csv:");

// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening datalog.csv");
}
}

void loop() {
// nothing happens after setup
}

--,-,-,-,-,-,--,-,--,
Ezt kellett változtatnom :

Kód: Egész kijelölése

** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)                                              // ÁTTETTEM D10. LÁBRA
if (!SD.begin(10)) {                                                                  // ÁTÍRTAM    10 re

Mint írtam elsőre nem sikerült, de a másik kártyaolvasóval igen. Itt az eredmény :
-,,-,-,-,-,-,-

Initializing SD card...initialization done.
Writing to datalog.csv...done.
datalog.csv:
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.
-,-,----,-,-,
Mindkét kártyaolvasó új , és mindkét kártya FAT16.-ra formázott és működnek .
Ha megtudom a hiba pontos okát , akkor megírom.
Amiket írtál, azt még nekem értelmeznem kell . Még nem értem a 60 napos tananyag végére.
Próbáltam képet beszúrni, de nem sikerült.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9768
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: Robert » 2017. november 23. csütörtök, 9:58

Kód: Egész kijelölése

if (!SD.begin(10)) { // ÁTÍRTAM 10 re
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");


Ez a baj.
Hiányzik a megelőző sorból:

Kód: Egész kijelölése

pinMode(10, OUTPUT);

A CS láb így csak "gyenge" meghajtású !


Ez a mintaprogram a gyári, Arduinoban amúgy is meglevő.... :)
http://www.tavir.hu - a gazda :)

apeape
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2017. november 2. csütörtök, 11:01

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: apeape » 2017. november 23. csütörtök, 10:27

Köszönöm . Ezt a sort értem ,bár úgy emlékszem ,hogy több programban ez is szerepelt . Most még megpróbálok minden variációt és beszámolok róla .
Majd teszek ezekre a lábakra ledes kijelzőt , pontosabban vele párhuzamos kimenetekre , hogy ne terheljem a vezérlő jeleket .
Most , hogy már működik , ki akarom gyomlálni az előző hibáim és rájönni miért tartott ez ennyi ideig. Valójában nekem ez csak játék, de nagyon élvezem .


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég