INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
12.01.2014, 12:58
Beitrag #9
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Tja, wenn ich die Specs richtig verstanden habe benutzen die die SPI Pins für den Uno :
D10 CSN
D11 MOSI
D12 MISO
D13 SCK
Da wirst du wohl Kabel ziehen müssen wenn es auf den Mega rauf soll.
Und in den Examples wird Port 10 auch vor SD.begin auf Output gesetzt (siehe BitKlopfer).
Leicht verwirrend das alles Huh

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2014, 13:30
Beitrag #10
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hi Ricardo,

Drähte habe ich wie bereits geschrieben (;-)) gezogen.
Aktueller Stand ist wie folgt.
Daten werden aus dem GPS gelesen und auf die Karte geschrieben.
Selbst mit Kopfzeile in einer Txt-Datei.
Wie gesagt: Alles funktioniert bis auf SD.begin(53)
Da habe ich auch schon diverses ausprobiert aber irgendwie keine Unterschiede gefunden.
Anbei mal der Code, falls jemand etwas Ähnliches probiert.


//Daten auf SD-Karte des GPS Moduls speichern
//Max. 2GB-Karte
//MEGA 10-14 > 50-53
//10 > 53
//11 > 51
//12 > 50
//13 > 52

#include <SD.h>
#include <SPI.h>
#include <TinyGPS.h>
TinyGPS gps;

int b = 0;
const int chipSelect = 53;

void setup()
{
// initialize both serial ports:
Serial1.begin(9600); //GPS TX/RX Pin 18/19
Serial.begin(19200); //SerialMonitor

Serial.print("Simple TinyGPS library v. "); Serial.println(TinyGPS::library_version());
Serial.println("by Mikal Hart");
Serial.println();

Serial.println("Initializing SD card... ");
pinMode(chipSelect, OUTPUT);
//digitalWrite(chipSelect, LOW); //SPI

if (!SD.begin(53))
{
Serial.println("Card faild, or not present !");
// return;
}
Serial.println("microSD card is ready!");
File dataFileHead = SD.open("DATATK.TXT", FILE_WRITE);
if (dataFileHead)
{
dataFileHead.println("LAN ; LON");
dataFileHead.close();
}
}

void loop()
{
//GPS
bool newData = false;
unsigned long chars;
unsigned short sentences, failed;

// For one second we parse GPS data and report some key values
for (unsigned long start = millis(); millis() - start < 1000Wink
{
while (Serial1.available())
{
char c = Serial1.read();
//Serial.write©; // uncomment this line if you want to see the GPS data flowing
if (gps.encode©) // Did a new valid sentence come in?
newData = true;
}
}

if (newData)
{
float flat, flon;
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
Serial.print("LAT=");
Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
Serial.print(" LON=");
Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);
Serial.print(" SAT=");
Serial.print(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites());
Serial.print(" PREC=");
Serial.print(gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop());

//SD
File dataFile = SD.open("DATATK.TXT", FILE_WRITE);
if (dataFile)
{
dataFile.print(flat);
dataFile.print(";");
dataFile.println(flon);
dataFile.close();
}
// else
// {
// Serial.println("Fertig");
// do{} while(1);
// }

}

gps.stats(&chars, &sentences, &failed);
Serial.print(" CHARS=");
Serial.print(chars);
Serial.print(" SENTENCES=");
Serial.print(sentences);
Serial.print(" CSUM ERR=");
Serial.println(failed);
if (chars == 0)
Serial.println("** No characters received from GPS: check wiring **");
}

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2014, 15:01
Beitrag #11
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hallo Geminy,

Zitat:Drähte habe ich wie bereits geschrieben (;-)) gezogen.
Hast Recht, wer lesen kann ist klar im Vorteil.

Eigentlich bleibt nur noch die Karte selbst übrig. Mal formatieren ? Vllt. reagiert sie auch nur einen Tick zu langsam. Wenn du Zeit/Lust hast kannst du ja mal den Patch von hier: http://forum.arduino.cc/index.php?topic=108017.0 in der SD - Lib umsetzen (vorher aber sichern!)
Ergebnis wäre sicher interessant fürs Forum.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2014, 19:16
Beitrag #12
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hi Ricardo,

das hat auch keinen Erfolg gebracht.
Ich hatte einen ähnlichen Patch auch schon im internationalen Arduinoforum gefunden und unter der "alten" IDE versucht. Brachte aber auch nichts.

Trotzdem Danke für die Hilfe
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.01.2014, 08:42
Beitrag #13
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Moin,
vergleich doch mal deinen Sketch mit dem Original aus dem Beispiel hier...

Serial.print("Initializing SD card...");
// make sure that the default chip select pin is set to
// output, even if you don't use it:
pinMode(10, OUTPUT);

// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return; // <======= bei dir auskommentiert !!!!
}
Serial.println("card initialized.");

..da hat sich beim kopieren wohl ein Fehler beim Zeilenumbruch eingeschlichen...
und das hier hast du auch auskommentiert:
//digitalWrite(chipSelect, LOW); //SPI
oder war letzteres nur zum testen...
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.01.2014, 21:48
Beitrag #14
RE: Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem
Hallo Bitklopfer,

die Zeile "//Return;" habe ich absichtlich auskommentiert, damit der anschließende Zugriff auf die Datei ausgeführt wird. (Schreiben der Kopfzeile in die Datei). Ansonsten würde ja mit Return die Setup-Routine verlassen.
Die "digitalWrite(..." Zeile habe ich mit LOW, mit HIGH und ohne ausprobiert und bringt keinerlei Veränderung (???)
Ist ja alles noch unsauber, zusammenkopiert und angepasst.
Habe leider keine andere SD-Karte sonst würde ich das mal ausprobieren.

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  MP3 VS1053 shield Geeros#18 11 273 15.04.2018 13:37
Letzter Beitrag: hotsystems
  ATMega 328P Bootloader funktioniert nur 1x Gelegenheitsbastler 4 241 08.04.2018 16:09
Letzter Beitrag: Chopp
  Bootlader Brennen funktioniert nicht Ardusil 6 394 18.03.2018 10:53
Letzter Beitrag: hotsystems
  Rundklammern setzen, aber wie und warum? HarryS 4 496 18.03.2018 10:25
Letzter Beitrag: HarryS
  Arduino Mega mit Shield und 7" Touch Tudorf 10 496 25.02.2018 14:30
Letzter Beitrag: Tommy56
  Daten vom Arduino Mega an Nextion Diskusguppy 4 311 25.02.2018 13:29
Letzter Beitrag: hotsystems
  Rotaryencoder funktioniert nicht richtig 123clever 19 785 20.02.2018 22:22
Letzter Beitrag: rpt007
  [gelöst] Micro SD-Card Shield an ISP? torsten_156 1 201 08.02.2018 22:24
Letzter Beitrag: Tommy56
  COM Port bei Arduino Mega? LoroLoco 8 750 19.01.2018 12:49
Letzter Beitrag: hotsystems
  timer Mega 2560 4x tone Output see 6 533 11.01.2018 20:11
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste