Im Folgenden versuche ich systematisch den Fehler zu finden. Ich hoffe
ihr könnt mir helfen, da ich seit Tagen nicht weiter komme.
Ausgangslage:
Atmega1280 + Codevisioncompiler
Folgendes ist an der SPI-Schnittstelle angeschlossen:
-Temperatursensor
-Display
-Flash-Speicher
-Drucksensor
Das Display funktioniert über die SPI-Schnittstelle. Nun möchte ich den
Drucksensor auslesen, der aber nicht reagiert.
>> ich habe mir folgendes REINES Testprogramm geschrieben, um zu überprüfen, ob
der Drucksensor richtig angeschlossen ist:
Alles Pins als Eingänge, keine SPI, nur UART für die Testausgabe.
SCK (PB1), MOSI(PB2), MISO(PB3) als Ausgänge geschalten.
und folgende Tasten zugeordnet:
T1: PINB.1=0;
T2: PINB.1=1;
T3: PINB.2=0;
T4: PINB.2=1;
T5: PINB.3=0;
T6: PINB.3=1;
Folgendes habe ich gemessen und beobachten können:
PINB.1 funktioniert.
PINB.2: lässt sich mit T3 nicht auf 0 schalten, doch wenn man T4 drückt,
toggelt der Ausgang von 0-5V-0V usw. (Obwohl laut meinem Code immer nur
PINB.2=1 ausgeführt wird ???!!!?!?!?!)
PINB.3: der verhält sich noch toller!! Toggelt auch nur wenn man T6
drückt und dann so: 0.4V-1.7V-0.4V-1.7Vusw.
Display habe ich abgesteckt, hilft nichts. Die anderen Sensoren kann ich
nicht abtrennen.
Die Leitungen zum Drucksensor haben in Reihe einen 330Ohm Widerstand und
gegen 5V einen 47kOhm Widerstand.
Ich habe aber am Drucksensor und am Atmega1280 das gleiche gemessen.
Bitte um Hilfe/Tipps/Ratschläge!!
> Im Folgenden versuche ich systematisch den Fehler zu finden. Ich hoffe > ihr könnt mir helfen... Gerne :-) 1/ Schaltplan deines Aufbaus? Wenn 1 vorhanden: 2/ Datenblatt Drucksensor? => 1+2: Sensor richtig angeschlossen? Wenn 1+2 erfolgreich: 3/Codefetzen mit der Ansteuerung des Drucksensors? => 2+3: Sensor richtig angesteuert?
Danke für deine Antwort. Ich glaube, es besteht hier ein grundsätzliches Problem, mir ist nun nämlich noch folgendes aufgefallen: Ich habe an PINC.3 eine LED nach dem Beispiel im Anhang angeschlossen. Nun schreibe ich im Code folgendes: DDRC.3 = 1; //als Ausgang setzen PINC.3 = 1; //LED einschalten PINC.3 = 0; //es passiert gar nichts, die LED bleibt an!! PINC.3 = 1; //Die LED geht aus!! Steuern tu ich es mit 2 Taster > kein Fehler im Timing. d.h. PINC.3 = 0; hat keinerlei Auswirkungen! PINC.3 = 1; schaltet die LED an und wieder aus!! Wie kann sowas sein??? Da muss doch ein grundsätzliche Schatungsfehler auf dem Board bestehen?! Mir ist auch aufgefallen, dass die MISO Leitung immer auf GND gezogen wird, selbst wenn ein Bauteil Infos auf die Leitung gibt.
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.