- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: ATmega32 funktioniert inkorrekt

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.03.2005
    Ort
    Ulm
    Alter
    36
    Beiträge
    519

    ATmega32 funktioniert inkorrekt

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Bei mir hat sich folgendes Problem herausgestellt.
    Mein Mega32 lässt sich zwar problemlos flashen und auch die Fuse-/und Lockbits lassen sich konfigurieren aber der AVR führt meinen Code nicht richtig aus oder der Code ist falsch. Sicher kann ich es nicht sagen.

    Wenn ich folgenden Code aufspiele


    Code:
    $regfile = "m32def.dat"                                     'ATmega32
    $crystal = 11059200                                         'Quarz: 11059200 Hz
    
    Ddrc = &B00000000                                           'IRs als Eingänge
    Ddra = &B00010000                                           'PIN PA4 Ausgang
    
    Do
    
       If Pinc.2 = 1 Then                                       'SHARP
    
         Porta.4 = 1
         Waitms 6000
       End If
    
    Loop
    End
    Dann sollte doch der Pin A4 auf High gehen sobald er vom SHARP am Pin C2 ein High-Signal bekommt. Das High-Signal bekommt er auch, aber der Pin A4 bleibt immer auf Low.

    Nun geht die Sache noch weiter...ich habe den Code weiterv vereinfacht und mir folgendes angesehen

    Code:
    $regfile = "m32def.dat"                                     'ATmega32
    $crystal = 11059200                                         'Quarz: 11059200 Hz
    
    Ddrc = &B10000000                                           
    Portc = &B11111111
    
    Do
    Loop
    End
    Nach diesem Code her sollte doch NUR PC7 auf High sein?
    Als ich es nachgemessen habe fiel mir aber auf, dass es PC6 auch ist.
    PC7 ist sauber mit 5,0V auf High gesetzt. PC6 sollte auf null sein, bei ihm sind aber ca. 4,78V zu messen.

    Was liegt hier genau vor?
    Ich konnte den AVR bis jetzt wie in Code 1 zu sehen noch nicht überreden überhaupts eine Bedingung auszuführen und nichtmal schlichte Anweisungen führt er korrekt aus.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    der M32 funktioniert genauso wie er soll !
    im 2. Beispiel setzt Du zwar nur PC7 auf Ausgang alle anderen sind aber Eingang, wenn ein Pin auf Eingang ist und es wird auf 1 gesetzt wird er Pullup aktiviert, was zu der Spannung von 4.78V führt !
    Wenn Du das richtig testen willst muss das so heissen:
    Code:
    Ddrc = &B11111111
    Portc = &B10000000
    Dann kommt noch dazu, das ein nagelneuer Mega mit JTAG Interface dieses immer aktiviert ist, um die Pins vom Programm aus verwenden zu können muss man das mit den Fusebits erst deaktivieren !

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.03.2005
    Ort
    Ulm
    Alter
    36
    Beiträge
    519
    Vielen Dank!

    Ich hab das JTAG in den Bits deaktiviert und den Code entsprechend geändert, nun funktioniert mein AVR so wie ich es will, vielen, vielen Dank!

    Eben auf das JTAG Interface wäre ich selbst nie gekommen

Berechtigungen

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

12V Akku bauen