mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wieso sind die Bits invertiert?


Autor: Oliver Herpel (oliher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kann mir einer sagen, wieso die Bits am Port invertiert rauskommen? Wenn 
ich z.B. 00100100 am PortB ausgeben will kommt 11011011 dabei raus. Ich 
benutze das STK500 mit einem Atmega32. Dies sind meine ersten Schritte 
mit Micros.

Gruss

Oliver

Autor: Dirk Dörr (dirkd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woher weißt Du das die Bits invertiert sind?

Wenn am Port LEDs hängen können die auch low-aktiv geschaltet sein, d. 
h. sie werden mit einer 0 ein- und mit einer 1 ausgeschaltet.

Autor: Oliver Herpel (oliher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk Dörr wrote:
> Woher weißt Du das die Bits invertiert sind?
>
> Wenn am Port LEDs hängen können die auch low-aktiv geschaltet sein, d.
> h. sie werden mit einer 0 ein- und mit einer 1 ausgeschaltet.

Ja, Genau. Aber wie kann ich das ändern? Softwaremäßige die Einstellung 
ändern?

Gruss

Oliver

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu müsstest du die Hardware ändern, wenn das tatsächlich
so ist.
Aber wo ist das Problem? Wenn du weist das alles genau
anders rum ist, kann man das doch im Programm ganz leicht
berücksichtigen.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber ich muss dich enttäuschen.
Laut Schaltplan vom STK500 sind die LED's schon
so verschaltet, dass eine 1 am Ausgabeport die
LED leuchten lässt und eine 0 sie ausschaltet.

Dein Problem muss also woanders liegen.
Zeig doch mal dein Pgm.

Autor: Oliver Herpel (oliher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Dazu müsstest du die Hardware ändern, wenn das tatsächlich
> so ist.
> Aber wo ist das Problem? Wenn du weist das alles genau
> anders rum ist, kann man das doch im Programm ganz leicht
> berücksichtigen.

Ja, stört mich nur ein bischen, aber OK, Du hast natürlich Recht! Ich 
werde das jetzt erstmal so machen wie Du sagst.

Gruss

Oliver

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch die STK500 LED-Zeile ist aktiv low.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich werde das jetzt erstmal so machen wie Du sagst.

Nein. Nicht.

Ich hab das geschrieben, bevor ich mir den Schaltplan
zum STK500 gesucht habe!

Wenn du eine 1 ausgibst, muss die LED leuchten!

Wenn nicht, ist irgendwo etwas faul. Da ich davon
ausgehe, dass dein STK nicht defekt ist, kann es dann nur
noch dein Pgm sein.

Autor: Karl heinz Buchegger (kbucheg)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
A.K. wrote:
> Auch die STK500 LED-Zeile ist aktiv low.

Hmm.
Hab ich Tomaten auf den Augen? Siehe Anhang.

Autor: Jürgen Berger (hicom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein das stimmt nicht, die Leds leuchten bei einer
0 am Portausgang.
Also vor der Ausgabe das Signal invertieren, z.B. mit dem
COM Befehl.

Jürgen

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also bei mir Leuten die LEDs wenn ich die Pins mit gnd verbinde.....

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Auch die STK500 LED-Zeile ist aktiv low.

Nein. Wenn Buchegger sagt, sie ist aktiv high, dann ist sie es auch. 
Egal was der Schaltplan sagt. Da könnte ja jeder kommen.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> A.K. wrote:
>> Auch die STK500 LED-Zeile ist aktiv low.
>
> Hmm.
> Hab ich Tomaten auf den Augen? Siehe Anhang.

Ich hab Tomaten auf den Augen. Das ist ja gar nicht
der µC Ausgang da am Basiswiderstand des Transistors.
:-)

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans wrote:
>>Auch die STK500 LED-Zeile ist aktiv low.
>
> Nein. Wenn Buchegger sagt, sie ist aktiv high, dann ist sie es auch.
> Egal was der Schaltplan sagt. Da könnte ja jeder kommen.

Du sagst es: Da könnte jeder kommen und behaupten dass
free() den Speicher ausnullt.

Im Gegensatz zu dir kann ich eingestehen, wenn ich einmal
Mist erzähle.

Autor: Oliver Herpel (oliher)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Aber ich muss dich enttäuschen.
> Laut Schaltplan vom STK500 sind die LED's schon
> so verschaltet, dass eine 1 am Ausgabeport die
> LED leuchten lässt und eine 0 sie ausschaltet.
>
> Dein Problem muss also woanders liegen.
> Zeig doch mal dein Pgm.

Sorry,

ich war zu langsam mit dem Tippen. Also, das Programm ist nichts 
aufregendes. Ich wollte halt nur mal das Board testen und fang gerade 
erst an. Das Programm soll zwei LEDs am Ausgabeport zum flimmern bringen 
(Bit 2 und Bit 4 oder "00010100"). Im Testlauf ist alles normal, nur 
wenn ich mein Programm auf den Controller lade, dann leuchten die LEDs 
in dieser Reihenfolge 111x1x11. 1 steht in diesem Fall für LED leuchtet 
dauerhaft und x steht für LED flimmert.

Ich hoffe Du kannst mir weiterhelfen.

Gruss

Oliver

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das passt schon.
Ich hab den Schaltplan falsch gelesen.

Also: Per Programm umdrehen.
Die Led leuchtet wenn am Port eine 0 ausgegeben wird.

Autor: Muraer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dies ist auch vernünftig so.
AVRs haben es lieber, wenn sie den Strom durch einen High-Pin nicht 
selber liefern müssen. Da können sie nicht soviel durchlassen, als wenn 
sie den Strom auf das GND reinlassen.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt nur bei den alten AT90. Die Megas/Tinys sind symmetrisch.

Autor: M. M. (miszou)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

also ich kann im Datenblatt keinen Unterschied erkennen.
Ob High oder Low, beides mal 20mA. Auch unter Notes fällt mir nichts 
auf.

Kommt das Low Aktiv nicht daher, dass es so früher ofters so war wie 
Muraer geschrieben hat. Aber bei den AVRs spielt es laut meinen Augen 
keine Rolle mehr.

Gruß MISZOU

EDIT: Ok doch nichts übersehen.

Autor: pumpkin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
um deine anzeige aktib high zu machen invertiere die bits einfach bevor 
die sie ausgibst. z.b.

PORTA = ~(meine_tolle_ausgabe);

dann leuchten deine LED's bei ner 1.


pumpkin

Autor: Jörn Paschedag (jonnyp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Ausgabe des STK500 ist aktiv LOW. Ich habe es und weiss es daher und 
im Schaltplan steht es auch so drin! Den Schaltplan kann man zB bei 
avrfreaks.net herunterladen.
Das ist hier ein sehr gutes Forum, und ich finde das sollte auch so 
bleiben. Den Sprücheklopfern sei daher mal empfohlen erst das Gehirn 
einzuschalten und dann erst die Klappe aufzureißen und Neulinge / 
Anfänger nicht zu verunsichern.

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.