Hallo zusammen, habe folgenden Treiber für einen EEPROM, den ich gerne auf meinen arduino laufen lassen würde. http://www.sst.com/dotAsset/40542.txt Das Problem ist, ich muss noch die Konstanten "CE", "SCK" usw. definieren, weiss aber nicht, wie ich das in der Arduino IDE machen kann. Normalerweise würde ich das mit #define SCK ( 1 << PORTE2 ) tun. Aber die IDE erkennt das nicht. Wie kann ich das direkt mit C tun? Danke euch, Max
oh super danke für die Antwort. Aber was ist der 2er? Also welcher Pin ist das jetzt? Danke Dir!
hm tut mir Leid, aber das verstehe ich jetzt nicht. Bit #2? Von welchen? Ich brauche doch einen Port? Und einen Pin von dem Port?
>Aber was ist der 2er? Also welcher Pin >ist das jetzt? Was willst ausgerechnet DU mit so einem Monsterflash? >Das Problem ist, ich muss noch die Konstanten "CE", "SCK" usw. >definieren, weiss aber nicht, wie ich das in der Arduino IDE machen >kann. Das kannst du so nicht übernehmen. SCK = 1 oder CE = 0 musst du durch entsprechende Bitsetz- und Bitlöschbefehle ersetzen.
Das ist ein EEPROM in einem GPS-Logger der wegen anderen Problemen die Daten nicht mehr ausgibt. Da die Daten aber wichtig sind, möchte ich diesen EEPROM nun an meinen arduino anschliessen und den speicher auslesen um die daten zu retten. Dass ich die Befehle erstezen muss, dachte ich mir fast. Aber wie mache ich das? Kann ich da jetzt einfach dann digitalwrite verwenden?
>Das ist ein EEPROM in einem GPS-Logger der wegen anderen Problemen die >Daten nicht mehr ausgibt. Da die Daten aber wichtig sind, möchte ich >diesen EEPROM nun an meinen arduino anschliessen und den speicher >auslesen um die daten zu retten. Prust;) Du weisst ja nicht mal wie man einen Portpin setzt oder löscht. Lass da mal einen Profi ran. Sonst sind deine Daten möglicherweise futsch.
ich kann nicht ganz nachvollziehen warum du so polemisch wirst. Ich habe einen fertigen Treiber, den ich in C sehr wohl verstehe, den ich aber, weil ich den Arduino bzw. seine ganzen besonderheiten erst seit wenigen Tagen kenne / besitze. Einem Profi das zu geben ist Schwachsinn, die Daten sind keine paar tausend Euro wert. Und noch futscher als sie jetzt schon sind können sie nicht werden. Also wenn Du keine lust hast mir zu helfen dann schau einfach nicht in den Thread. Ich werds auch so rausfinden, ich geb dir dann Bescheid wenns funktioniert hat...
Maxwell schrieb: > ich kann nicht ganz nachvollziehen warum du so polemisch wirst. > Ich habe einen fertigen Treiber, den ich in C sehr wohl verstehe, den > ich aber, weil ich den Arduino bzw. seine ganzen besonderheiten erst > seit wenigen Tagen kenne / besitze. Einem Profi das zu geben ist > Schwachsinn, die Daten sind keine paar tausend Euro wert. Und noch > futscher als sie jetzt schon sind können sie nicht werden. Also wenn Du > keine lust hast mir zu helfen dann schau einfach nicht in den Thread. > Ich werds auch so rausfinden, ich geb dir dann Bescheid wenns > funktioniert hat... Gut. Dann fang erst mal damit an, fstzulegen an welchen Pin an welchem Port du die EEPROM Leitungen SCK, SI, SO, SO, CE, WP, Hold anschliessen willst. Und dann programmierst du ein 'Bit auf 1 an diesem Port setzen' wann immer im Code ein SCK = 1 auftaucht, indem du das von dir bei der Hardwarezuordnung gewählte Bit am von dir gewählten Port auf 1 setzt. Für SCK = 0 dann die genaue Umkehrung bzw. selbiges in Grün für alle anderen Signale. Ist doch nicht so schwer. Da hätte man auch alleine draufkommen können. Und das ist dann genau das, was die Profis auszeichnet. Die kommen ganz von alleine auf derart naheliegenden Ideen bzw. haben auch kein Problem temp = SO; in Standard-C über eine Standard-Bitabfrage zu formulieren. Die richtigen Profis schaffen das ganze dann auch, ohne den Code umschreiben zu müssen, indem sie sich mittels Bitfeldern eine Zuordnung bauen. Aber das ist dann schon ein wenig trickreich, wenn man es noch nie gemacht hat.
>ich kann nicht ganz nachvollziehen warum du so polemisch wirst. Siehe unten. >Ich habe einen fertigen Treiber, den ich in C sehr wohl verstehe, den >ich aber, weil ich den Arduino bzw. seine ganzen besonderheiten erst >seit wenigen Tagen kenne / besitze. Dann ist das auslesen eines solchen Chips natürlich das erste Programm;) Lass erst mal ne LED leuchten. Dann lass sie blinken. Selbst wenn du den Chip lesen kannst, wie kommen dann die Daten auf den PC? Da gibt es noch ein paar Hürden die du nehmen musst.
Danke für deine konstruktive Hilfe. Soweit war ich schon, nur ich weiss jetzt eben nicht wie ich mit dem Arduino auf einen Port zugreife. Mit einem andren board (das ich aber nicht mehr habe) habe ich eben immer ganz normal mit DDRA |= (1<<6); auf einen bestimmten Pin zugegriffen. Mit dem Arduino kenne ich aber nur das digitalwrite...
LEDs blinken lassen kann ich, ich bin doch nicht blöd... Ausserdem habe ich schon in eingen projekten eine serielle schnittstelle verwendet, alles kein problem. Ich hab nur keine Ahnung wie ich auf einen bestimmten port zugreifen kann...
Maxwell schrieb: > auf einen bestimmten Pin zugegriffen. Mit dem Arduino kenne ich aber nur > das digitalwrite... Man kann einen Arduino auch in ganz normalem C programmieren. Die Arduino eigene Programmiersprache ist zwar nett, aber kein Muss. Aber abgesehen davon: was hindert dich daran, den Code umzuschreiben, so dass anstelle von SCK = 1; dann dortsteht digitalwrite( SCK_Pin, HIGH ); und für den SCK_Pin suchst du dir einen der Anschlüsse aus, lässt den Draht vom SCK Pin des EEPROM dort hingehen und teilst das dem Arduino-"C" auf die Arduino-übliche Art und Weise mit.
Wenn du die avr io.h einbindest, geht das beim Arduino genauso wie bei jedem anderen Atmega auch, letztendlich ist das ja auch nur ein avr Entwicklungsboard.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.