Du hast die LED gegen +5V geschalten.
Wenn du auf den Pin misst, dann gegen +5V oder gegen GND?
Hi, ich habe mal wieder ein Problem.
Undzwar habe ich nur eine LED mit Vorwiderstand am PORTC Pin0.
Mit diesem Programm leuchtet die LED:
Code:#include <avr/io.h> #include <avr/interrupt.h> #include <stdint.h> int main() { DDRC=0xFF; PORTC=0x00; //Alle Pins auf "Low" while (1); }
Aber mit diesem hier nicht:
Dabei habe ich in Tutorials gelesen, dass die Ausgangspins, wenn man sie auf High schaltet 5V ausgeben.Code:#include <avr/io.h> #include <avr/interrupt.h> #include <stdint.h> int main() { DDRC=0xFF; PORTC=0xFF; //Alle Pins auf "High" while (1); }
Und eigentlich sollte doch erst ein:
PORTC=0x01;
den Pin0 High schalten und nicht ein
PORTC=0x00;
oder?
Aber wenn ich 0x01 nehme, dann habe ich die Spannung auf Pin1.
Und das witzigste: Wenn ich alle Pins High schalte (PORTC=0xFF) habe ich auf keinem Pin des Ports eine Spannung.
Hilfe!
jawo3
Du hast die LED gegen +5V geschalten.
Wenn du auf den Pin misst, dann gegen +5V oder gegen GND?
Ich habe die LED gegen 5V geschaltet.
Mir ist gerade aufgefallen, dass ich gegen VCC gemessen habe.
Wen ich gegen GND messe habe ich 5V an allen Pins außer Pin1, aber die LED an Pin0 leuchtet nicht.
Das aktuelle Programm ist dieses:
Wo ist der Fehler?Code:#include <avr/io.h> #include <avr/interrupt.h> #include <stdint.h> int main() { DDRC=0xFF; PORTC=0x01; }
Hast du beim kompilieren die optimierung ausgeschaltet? Ja und noch wichtiger hast du in den Fuses JTAG disabled, sonst funktioniert ein Teil von PortC nicht.
Sorry, aber es wäre schön, wenn du mir sagen könntest, wo genau ich diese Funktionen finde, da ich mich erst seit einiger Zeit mit dem Compiler beschäftige...
Bin jetzt nicht der E-Techniker, der dir erklären kann warum und weswegen das so ist, jedenfalls hast du die LED mit Sicherheit so angeschlossen, dass sie im Low-Zustand leuchtet. Ist beim RN-Control genauso.
Also wenn die LED leuchten soll, dann den Pin auf 0 schalten, wenn sie aus sein soll auf 1.
Grüße CsT
Ich weiss nicht welchen Compiler du verwendest, aber ändere mal zuerst die Fuses, bei JTAGEN darf kein Haken sein.
Also ich habe WinAVR und es scheint tatsächlich so zu sein, dass die LED immer nur dann leuchtet, wenn der Pin auf Low geschaltet ist, aber es wäre schön, wenn ich das ändern könnte, weil ich adnn näher an den Tutorials arbeiten könnte.
Die einzige Funktion die ich gefunden habe um etwas wie JTAGEN auszuschalten ist bei Ponyprog, und da habe ich kein Häkchen.
Trotzdem leuchtet die LED nur bei Low.
Dann hast du die LED wahrscheinlich zwischen PIN und PLUS geschalten. Machs zwischen PIN und Masse, dann sollte sie nur leuchten, wenn Highpegel ist.
Bist du dir sicher, dass du die led nicht auf VCC schaltest? dann leuchtet sie bei Low und bei High nicht, da sie ja das selbe Pontential hat...
Lesezeichen