mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega88 portb probleme lastseite ausgänge


Autor: john (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
vielleicht kann mir jemand weiterhelfen?

Bei meinem Atmega88 verhält sich PORTB anders als PORTC.

Mit dem PORTC steuer ich die Schaltung einer 4-stelligen 
7-Segment-LED-Anzeige an. Die Schaltung mit gemeinsamer Anode wie hier 
auf den Seiten im Tutoral abgebildetet ist.
Sobald ich die Segmente auf dem PORTB umlege und dann PORTB wie PORTC 
ansteuere, passiert nichts mehr.
Alle PORTs habe ich als Ausgänge und gleich initialisiert.

Trotz aller Bemühungen im Atmega88 Handbuch etwas über die Unterschiede 
oder ähnliches zu finden, habe ich bisher keine Lösung für mein Problem 
gefunden.

Zu aller letzt habe ich auch schon den Controller gegen neue 
ausgetauscht (unbenutzte) und bin zur simplen Programmierung mittel cbi 
und sbi der einzelnen PORT-Ausgänge übergegangen. Alle nicht benötigten 
Programmteile abgeschaltet und nur doch statische Ansteuerungen immer 
wieder in verschiedenen Varianten (Bit-Muster) in den Controller 
eingespielt.

Mit PORTB bekomme ich kein vernünftiges LOW-Signal hin, High-Pegel sind 
in Ordnung nur die Low-Pegel liegen irgendwo dazwischen. 
Programmieradapter ist dann auch nicht angeschlossen. Beim Programmieren 
sind aktivietäten auf der Anzeige zu sehen, was darauf hinweist, das 
etwas mit meinen Signalen aus dem Controller im Normalbetrieb nicht 
stimmt.


Gibt es Unterschiede in der Hard- oder Software bei als Ausgängen 
geschaltete PORTB und PORTC?


HIERMIT FUNKTIONIERT DIE ANZEIGE:

ldi    tmp,  0b11111111   ; PortB (0-Input, 1-Output)
out    DDRB,  tmp
out    DDRC,  tmp
out    DDRD,  tmp

sbi    PORTD,  4  ; Anzeige 1 anwählen
sbi    PORTD,  5  ; Anzeige 2 anwählen
cbi    PORTD,  6  ; Anzeige 3 anwählen
cbi    PORTD,  7  ; Anzeige 4 anwählen

cbi    PORTC,  0  ; Segment a anwählen
sbi    PORTC,  1  ; Segment b anwählen
cbi    PORTC,  2  ; Segment c anwählen
sbi    PORTC,  3  ; Segment d anwählen
cbi    PORTC,  4  ; Segment e anwählen
sbi    PORTC,  5  ; Segment f anwählen
cbi    PORTC,  6  ; Segment g anwählen
sbi    PORTC,  7  ; Segment DP anwählen





HIERMIT FUNKTIONIERT DIE ANZEIGE NICHT:

ldi    tmp,  0b11111111   ; PortB (0-Input, 1-Output)
out    DDRB,  tmp
out    DDRC,  tmp
out    DDRD,  tmp

sbi    PORTD,  4  ; Anzeige 1 anwählen
sbi    PORTD,  5  ; Anzeige 2 anwählen
cbi    PORTD,  6  ; Anzeige 3 anwählen
cbi    PORTD,  7  ; Anzeige 4 anwählen

cbi    PORTB,  0  ; Segment a anwählen
sbi    PORTB,  1  ; Segment b anwählen
cbi    PORTB,  2  ; Segment c anwählen
sbi    PORTB,  3  ; Segment d anwählen
cbi    PORTB,  4  ; Segment e anwählen
sbi    PORTB,  5  ; Segment f anwählen
cbi    PORTB,  6  ; Segment g anwählen
sbi    PORTB,  7  ; Segment DP anwählen


Irgendwie seltsam!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.