Hallo , vielleicht hat von Euch schon jemand Erfahrung mit der Schnittstelle, von Visual Basic über die UART zum Mikrocontroller. Ziel ist es eine Zahl 0-255 in ein Register meines Atmega 8 einzuspielen, damit ich diese intern im Atmega 8 weiterverarbeiten kann. Atmega8 - max232 - PC Ich kann mit dem Aufbau Text vom Atmega8 an den PC senden. Was muß man beachten wenn man eine Zahl vom PC an den Atmega8 schickt, damit dieser aus dem String der übertragen wird, wieder eine Zahl macht ? vielen Danke für Eure Hilfe Joachim
Wie sendest du das Zeichen, als ASCII-Zeichen, dann musst du es mit atoi umwandeln, oder als hex-Wert, dann kannst du es ja direkt weiterverarbeiten. Am einfachsten ist natürlich ein unsigned char.
Hubert G. schrieb: > oder als hex-Wert, dann kannst du es ja direkt > weiterverarbeiten. Was meinst du mit Hex-Wert? Direkt weiterverarbeiten kann man bestenfalls eine binär übertragene Zahl. Ein in hexadezimaler Darstellung übertragener Wert muß wieder zurückkonvertiert werden.
Joachim H. schrieb: > Ich kann mit dem Aufbau Text vom Atmega8 an den PC senden. Das ist dann schon mal die halbe Miete > Was muß man beachten wenn man eine Zahl vom PC an den Atmega8 schickt, > damit dieser aus dem String der übertragen wird, wieder eine Zahl macht > ? Das du im String eindeutig den Textbereich erkennen kannst, an dem die 'Zahl' anfängt und an dem die 'Zahl' endet. Wenn du die Zahlen 23 45 78 hintereinander übertragen willst, muss da ein Trennzeichen dazwischen, denn aus dem Text 234578 kann man viele Zahlen bilden. Aber zb 23;45;78; ist eindeutig. Auf µC Seite musst du dann nach diesem Trennzeichen suchen, den entsprechenden Abschnitt herauskopieren und mit einer geeigneten Umwandlungsfunktion aus dem Text "45" die richtige Zahl 45 machen. Das ganze ist mehr eine Übung in Textverarbeitung bzw. Benutzung der Stringfunktionen als sonst irgendetwas anderes.
Ich möchte mich für die Antwort bedanken. Werde jetzt nach einer Umwandlungsfunktion suchen, mit der es möglich ist z.B. Text"45" in Zahl 45 zu wandeln. Danke !!!
Klaus De lisson schrieb: > Es gibt ein "val()" Funktion Wo? Eher atoi() oder atol(): http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ga3a1fe00c1327bbabc76688a7a1d73370 Oder sscanf(), wenn man den Platz hat.
gibt es auf µC Seite einen Befehl. was in Visual Basic das Val ist. Nach einem Trennzeichen suchen, das kann ich programmieren. Mit welchem Befehl kann ich in Assembler die Umwandlung beeinflussen ?
>> Klaus De lisson schrieb: >> Es gibt ein "val()" Funktion >Wo? Naja z.B. in Bascom.. aber es steht ja eigentlich garnicht im Text, mit was hier programmiert werden soll. Gruss Klaus
"Mit welchem Befehl kann ich in Assembler die Umwandlung beeinflussen ?" mit Assembler würde ich gerne den Miktocontoller programmieren und die Daten weiterverarbeiten sollen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.