-         

Ergebnis 1 bis 3 von 3

Thema: seriell daten am atmega128 empfangen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    15.04.2007
    Beiträge
    55

    seriell daten am atmega128 empfangen

    Anzeige

    Hallo Allerseits

    Von PC sende ich seriell z.b folgendes C05F3123 es wird alles als text gesendet

    Bei den Atmega128 möchte es empfangen als C = string
    05 = als decimal wert
    F3 = als hex wert
    123 = als decimal wert
    E = string

    Die Frage ist, wie muss der code lauten um diese Daten am atmega128 zu empfangen und so auszuwerten?

    Muss ich die daten in eine stringvariavel empfangen und dann die einzelnen werten von den stringvariavel trennen und benutzen?

    z.b so?
    Dim Serial_char As String * 1
    Dim Serial_string As String * 9

    $timeout = 10000
    do
    If Ischarwaiting() = 1 Then
    Serial_char = waitkey()
    Serial_string = Serial_string + Serial_char
    end if
    Loop Until Serial_char = "E"

    If Len(Serial_string) = 9 Then
    hier die einzelnen chars trennen und in verschiedene variaveln speichern?
    end if

    Bin für Eure Hilfe sehr dankbar

    Gruss
    Sato

  2. #2
    hallo kollege,

    damit klappts bei mir prima!

    hatte gestern fast das selbe problem

    Code:
    'config UART Interrupt
    On Urxc Onrxd                           'Interrupt-Routine setzen
    Enable URXC        'Interrupt URXC einschalten
    Enable Interrupts  'Interrupts global zulassen
    
    'config VARIABLES
    Dim Astring As String * 1 , Bstring As String * 2 , Cstring As String * 2 , Dstring As String * 3
    Dim Estring As String * 1 , Bdec As Integer , Chex As Integer , Ddec As Integer
    
    
    'main program
    Do
    
    
    Loop
    
    
    'UART interrupt routine
    Onrxd:
     Inputbin Astring , Bstring , Cstring , Dstring , Estring       'lese werte als strings
    
     Print Astring
    
     Bdec = Val(bstring)                    'Val  Convert a string to a number
     Print Bdec
    
     Chex = Hexval(cstring)                 'Hexval  Convert a hex string to a number
     Print Chex
    
     Ddec = Val(dstring)                    'Val  Convert a string to a number
     Print Ddec
    
     Print Estring
    
    Return
    End
    ich würde alles als strings auslesen, ich gehe mal davon aus das die länge des strings konstant bleibt

  3. #3
    zur erklärung empfehle ich dir

    http://www.rowalt.de/mc/avr/avrboard/06/avrb06.htm

    viele grüsse

Berechtigungen

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