-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 21

Thema: [gelöst] Anfängerproblem: Pins tun nicht das, was ich will..

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.06.2007
    Ort
    zwischen Hannover und Hildesheim
    Alter
    26
    Beiträge
    135

    [gelöst] Anfängerproblem: Pins tun nicht das, was ich will..

    Anzeige

    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:
    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <stdint.h>
    int main()
    {
    DDRC=0xFF;
    PORTC=0xFF;  //Alle Pins auf "High"
    while (1);
    }
    Dabei habe ich in Tutorials gelesen, dass die Ausgangspins, wenn man sie auf High schaltet 5V ausgeben.

    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

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Du hast die LED gegen +5V geschalten.
    Wenn du auf den Pin misst, dann gegen +5V oder gegen GND?

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.06.2007
    Ort
    zwischen Hannover und Hildesheim
    Alter
    26
    Beiträge
    135
    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:

    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <stdint.h>
    
    int main()
    {
    DDRC=0xFF;
    PORTC=0x01;
    }
    Wo ist der Fehler?

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    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.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.06.2007
    Ort
    zwischen Hannover und Hildesheim
    Alter
    26
    Beiträge
    135
    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...

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    24.09.2006
    Beiträge
    84
    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

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Ich weiss nicht welchen Compiler du verwendest, aber ändere mal zuerst die Fuses, bei JTAGEN darf kein Haken sein.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.06.2007
    Ort
    zwischen Hannover und Hildesheim
    Alter
    26
    Beiträge
    135
    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.

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.05.2004
    Beiträge
    304
    Dann hast du die LED wahrscheinlich zwischen PIN und PLUS geschalten. Machs zwischen PIN und Masse, dann sollte sie nur leuchten, wenn Highpegel ist.

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.05.2004
    Alter
    31
    Beiträge
    388
    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...

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •