Forum: Mikrocontroller und Digitale Elektronik Inversion von Hand rechnen


von sebezahn (Gast)


Lesenswert?

Hi,

langsam aber sicher komme ich meinem Inverter-Problem auf die Schliche,
zumal der Hersteller des Chips, der mir das Problem macht, einen
exzellenten Support bietet.

Problem: In der RS232-Rx-Leitung eines Chips sitzt softwaretechnisch
ein Inverter, weshalb der CHIP mir die Rückgabewerte nicht richtig
ausspuckt. Nun programmiere ich allerdings mit BASCOM, ein Signal hier
softwaretechnisch zu invertieren ist standardmäßig nicht vorgesehen.

Nehmen wir mal an, ich will dem Chip die Zeichenkette "AT I" und dann
ein Zeichen 13 (Neue Zeile) senden, kann ich das nicht irgendwie von
Hand umdrehen? Was ist, wenn ich jedes Zeichen in seinen 8-BIT-Code
zerlege, jedes Zeichen invertiere und das "neue" Zeichen dann sende?


Beispiel:
A ist Ascii-65 gleich 01000001
invertiert macht das  10111110 entspricht Dec-190

Kann ich dann einfach das Ascii-Zeichen 190 senden?

Und was ist mit dem Stopbit?

Gruß
Sebezahn

von Dirk (Gast)


Lesenswert?

Hi,

also normalerweise kann man mit dem "toggle" Befehl eine Variable
invertieren.


Mfg
Dirk

von Peter D. (peda)


Lesenswert?

An der UART kannst Du nichts umschalten.

Entweder Du setzt einen 74HC04 dazwischen oder machst die UART
vollkommen in Software, z.B.:

http://www.specs.de/users/danni/avr/soft/uart/index.htm


Peter

von Matthias (Gast)


Lesenswert?

Hi

nur das Byte invertieren hilft nichts da Startbit, Stopbit und
Ruhepegel immer noch nicht stimmen. Also entweder 74HC04 oder aber,
wenns nicht zu schnell ist, einen Transistor als Inverter.

             VCC
              +
              |
             .-.
             | |1k
             | |
             '-'
              |
              +-----o OUT
              |
      _   |/
IN o-|___|--| BC547
      1k    |>
              |
              |
             ===
             GND
created by Andy´s ASCII-Circuit v1.24.140803 Beta www.tech-chat.de


Matthias

von sebezahn (Gast)


Lesenswert?

Mist, geht nicht. Ich empfange wieder nur Müll...

@Matthias
Ich habe in die Empfangsleitung des Chips diesen Inverter, wie von dir
gezeichnet, eingebaut. Bei 9600 Baud sollte das eigentlich
funktionieren, die Arbeiten ja selbst damit.

Kannst du vielleicht mal über das Datenblatt gucken? Auf Seite 18 ist
der Anschluss AM PC!
http://www.elmelectronics.com/DSheets/ELM323DS.pdf

Der Techniker von denen schrieb mir, die EMPFANGSLEITUNG sei vom Chip
bereits aus invertiert, nicht aber die Sendeleitung. Aber kann das
überhaupt sein? Schließlich erwartet der PC ja invertierte Daten, und
wenn nun der Chip das Signal auf Tx NICHT invertiert, dürfte da doch
nix ankommen... Umgekehrt beim Rx auch, oder?

Kann es sein, dass ich den Inverter in wirklichkeit in die SENDELEITUNG
(tx) des ELM323 hängen muss?

Danke und Gruß
Sebastian (der langsam verzweifelt...)

von Matthias (Gast)


Lesenswert?

Hi

Ich habs nur mal kurz überflogen:
Ich würde sagen du mußt die Richtung AVR->Chip invertieren und die
Richtung Chip->AVR direkt verbinden.

Matthias

von sebezahn (Gast)


Lesenswert?

Danke, hab jetzt beides probiert, und beides klappt nicht. Anscheinend
empfängt der gute zwar daten und gibt auch was aus, aber leider gar
nicht das, was er soll.

Naja, werde mal ne Nacht drüber schlafen. Danke Euch!

Gruß
sebezahn

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.