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
  CP2102 und USB Host Shield ?? DL1AKP 0 39 01.12.2016 08:55
Letzter Beitrag: DL1AKP
  Arduino UNO und Ethernet Shield 2 POE und Fritzbox 3272 tr3 2 149 19.11.2016 10:46
Letzter Beitrag: tr3
  Datenübertragung vom Arduino Mega 2560 zu Hterm Datatom 1 94 13.11.2016 23:08
Letzter Beitrag: hotsystems
  Arduino Mega 2560 läuft nicht Wolfgang50 6 172 13.11.2016 10:50
Letzter Beitrag: Wolfgang50
  Arduino Mega 2560 Manfred1981 4 183 11.11.2016 18:07
Letzter Beitrag: hotsystems
  Kommunikation über das WiFi-Shield Flap 3 230 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Attiny45 Bootloader brennen mit Funduino Mega toto1975 63 2.162 23.10.2016 17:08
Letzter Beitrag: hotsystems
Question Mega 2560 defekt? triode 11 355 29.09.2016 07:21
Letzter Beitrag: hotsystems
  Upload funktioniert nicht Levi 5 236 22.09.2016 20:19
Letzter Beitrag: hotsystems
  Arduino Lan Shield - Visual Basic ZackiE 6 214 20.09.2016 19:26
Letzter Beitrag: ZackiE

Gehe zu:


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