-
        

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31

Thema: Daten von Software UART empfangen

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467

    Daten von Software UART empfangen

    Anzeige

    Hallo,
    ich möchte mit einem ATMEGA8 vom Software UART Daten empfangen.
    Mit dem Hardware UART mache ich es so:
    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 19200
    
    $framesize = 42
    $swstack = 42
    $hwstack = 42
    
    Dim Eingang As Byte
    
    Open "COMD.7:19200,8,N,1" For Output As #1
    Open "COMB.0:19200,8,N,2" For Input As #2
    
    Do
     If Usr.rxc = 1 Then
          Eingang = Udr
          Select Case Eingang
             Case "1" : Print #1 , "1"                          'iv
             Case "2" : Print #1 , "2"                          'iru
             Case "3" : Print #1 , "3"                          'il
             Case "4" : Print #1 , "4"                          'ire
             Case "5" : Print #1 , "5"                          'is
             Case Else : Print "???"
          End Select
     End If
    Loop
    
    End
    Die Daten werden auch schon über Software UART weitergesendet. Aber ist es in dieser Art auch möglich Datren über SOFTWARE UART zu empfangen?

    Freue mich auf jede Antwort!!

    jon

    P.S.:Kenn jemand einen Bootloader, mit dem ich den ATMega8 über meine ER400TRS brogrammieren kann?
    Der Bootloadert von Frank kennt nur den ATMEGA32
    Nice to be back after two years
    www.roboterfreak.de

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Ich weiß, es sind erst 3Std vergengen, aber kann mir niemand helfen???
    Ich langweile mich

    jon
    Nice to be back after two years
    www.roboterfreak.de

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522
    Hallo Jon,
    mit dem Befehl "SERIN var , byteanzahl , port , pin, baud , parity , dbits , sbits" kannst du Variablen per Sw-UART empfangen.
    parity ist normaleweise 0, dbits 8 und s(top)bits 1.
    Ich hoffe ich konnte dir weiterhelfen.

    MfG Mark

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Werd ich mal ausprobieren.
    Danke für die Antwort!!

    jon
    Nice to be back after two years
    www.roboterfreak.de

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Ich habe das jetzt schon vor längerer Zeit ausprobiert und es ging auch ganz gut^^
    Jetzt habe ich das Problem, dass nicht immer was kommt. Ich will die kommenden Daten also nur abfragen, wenn auch welche kommen
    Im moment ist es so, dass er solange wartet, bis Daten kommt. Wenn da aber nichts kommt, soll er das einfach überspringen.

    Am liebsten wäre mir so eine Variante wie oben in meinem Programm. Auch so, dass ich nur ein Byte empfange.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522
    Hallo Jon,
    wenn du den SW-Uart wie den HW-Uart butzen willst, dann musst du RxD an einen Interrupt-Pin drangängen. Bei einer fallenden Flanke muss dann ein Interrupt ausgelöst werden, der das Byte empfängt und in eine Variable speichert. Eine zweite Variable kann dann als UCSRA1 dienen. Alternativ ginge es auch an jedem Pin, wenn du einen Timer einstellt, der ständig den RxD-Pin abtastet(normaleweise mit 3-facher Baud). Das ginge dann aber auf Kosten der CPU-Leistung sowie des Timers.

    MfG Mark

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Danke für deine Antwort.
    Das wäre eine Möglichkeit mit dem Interrupt. Das werde ich mal probieren. Im moment sind nur meine Akkus leer
    Was ist UCSRA1?
    Und das mit dem Teimer fällt raus, da es so schnell wie möglich gehen soll.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522
    Hallo Jon,
    UCSRA steht für UART Control and Status Register. dort werden Sachen des jeweiligen UART vermerkt wie z.b. ob ein byte empfangen wurde,ob der UART bereit ist ein byte zu senden usw. Eigentlich sollte es im obrigen Code UCSRA.rxd heissen, keine Ahnung wieso es in Bascom Usr heisst.

    MfG Mark

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Hast du dazu mal ein Beispielprogramm oder ist das in der Hilfe von Bascom genannt (mit Beispiel)?

    jon
    Nice to be back after two years
    www.roboterfreak.de

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522
    Hallo Jon,
    ich habe leider kein Beispielprogramm, weil ich in C programmiere. Ob das in der BASCOM-Hilfe steht weiss ich nicht. Du könntest es vllt so machen:
    einfach Interrupt bei fallender Flanke aktivieren(wie das in Bascom geht, weiss ich nicht), in der ISR steht dann z.b.
    serin UDR1, UCSRA1.rxd=1, return. die Variablen UCRSA1 und UDR1(Uart Dara Register) müssen zuvor natürlich deklariert werden.
    wenn du dann eine gucken willst, ob ein byte empfangen wurde kannst du es mit "if UDR1.rxd=1 then..." abfragen. Das byte selbst steht dann in UDR1. Vergiss nicht, das UCSR1.rxd wieder zu löschen, wenn du im Hauptprogramm UDR1 ausliest.
    Ich verspreche jedoch nicht, dass dieses Programm funktionieren wird.

    Such mal bei google nach "software-uart bascom" vllt findest du was.

    MfG Mark

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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