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
  Programmierung von PCa9685 Shield im Bezug auf Arduinos Crazydiver 5 216 10.04.2017 12:20
Letzter Beitrag: hotsystems
  Can-Bus Shield ok, aber keine Daten Clubsport 54 3.444 02.04.2017 22:28
Letzter Beitrag: Bitklopfer
  Keypad Shield luj1990 11 391 29.03.2017 21:15
Letzter Beitrag: Tommy56
Sad Sketch funktioniert auf dem Mega 2560 nicht Frank1234 16 640 26.03.2017 14:15
Letzter Beitrag: oOSpikeOo
  Mega 2560 und deren RX/TX alpenpower 17 3.681 06.03.2017 13:25
Letzter Beitrag: Franz54
  Einstieg Arduino Mega Markus0815 14 827 08.01.2017 13:40
Letzter Beitrag: Tommy56
  [Gelöst] SD Card (Ethernet Shield) IO funktioniert nicht __jb__ 7 602 05.01.2017 09:51
Letzter Beitrag: rpt007
Wink Funktioniert, funktioniert nicht. clandestino 7 515 04.01.2017 22:54
Letzter Beitrag: renid55
  Arduino Mega startet immer wieder neu Badger1875 9 1.132 26.12.2016 17:56
Letzter Beitrag: Badger1875
  2 Mega 2560 R3 unterschiedliche Firmware? Gonmaus 2 361 11.12.2016 13:40
Letzter Beitrag: P.Martin

Gehe zu:


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