- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 7 von 7

Thema: Hilfsuchung, Daten empfange von WIFI-Modul as UART1

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2014
    Beiträge
    5

    Hilfsuchung, Daten empfange von WIFI-Modul as UART1

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hallo, zusammen!!!!
    ich schreibe eine kurze code, um die Daten von Wifi -modul aus UART1 zu empfangen, dann wird die Daten nach UART0 versendet und auf Bascom-Simulator anzeigen.
    chips: atmega 324p zwei UART. UART1 mit Wifi Modul verbindet,
    wenn etwas von Wifi Modul empfangt wird, dann wird LED1 leuchten.
    Es funktioniert wenn, Mcu etwas von UART1 empfangt wird und Led1 leuchtet.
    aber ich weiße nur, dass etwas schon herein kommen, leider kann ich die Daten nicht auf die Variable speichern und auf auf Bascom-Simulator anzeigen.

    Es ist die Code.
    Code:
    '********** Prozessoreinstellungen *********************************************
    $regfile = "m324pdef.dat"                                   'Prozessortyp
    $crystal = 7372800                                          'Taktfreqwuenz
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    $baud = 9600
    
    Config Portb.2 = Output
    Led1 Alias Portb.2
    
    Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    Config Com2 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    
    Config Serialin0 = Buffered , Size = 254
    Config Serialin1 = Buffered , Size = 254
    
    Enable Interrupts
    Open "COM2:" For Binary As #1
    
          Dim Incoming_data As String * 200
          Dim A As Byte
          Dim C As String * 200
          Set Led1
    
    Do
    A = Ischarwaiting(#1)                                       ' ueberpruefung, ob daten von Wifi Modul empfangt werden?
    If A = 1 Then                                               'erfolgreich empfangt wird.
    Gosub Empfangen
    End If
    If A = 0 Then
    Print A ; "          " ; "keine Daten kommen hierein"
    End If
    Loop
    End
    
    Empfangen:
    
    Print A ; "        " ; "daten kommen rein"
    Led1 = 0                                                    'wenn etwas von Modul empfangt wird, dann wird LED1 leuchtet
    Input #1 , Incoming_data                                    ' daten spreichern
    C = Incoming_data
    Print C                                                              'daten auf Bascom-Simulator anzeigen
    
    Return

    Praogramm lauft wie die folgend, wenn ich etwas von Handy nach Mcu versendet.
    Klicke auf die Grafik für eine größere Ansicht

Name:	11.PNG
Hits:	12
Größe:	27,9 KB
ID:	29519
    kann jemand mir ein bisschen Hilfe anbieten?

  2. #2
    Unregistriert
    Gast

    hilfe

    kann jemand mir ein bisschen Hilfe anbieten?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2014
    Beiträge
    5
    kann jemand mir ein bisschen Hilfe anbieten?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2014
    Beiträge
    5
    OMG
    ICH BIN WIRKLICH DRINGEND.
    Ob jemand mir ein bisschen Tipps geben kann????????

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Hallo Heylbly,

    mal sehen... mit gepuffertem UART-Empfang habe ich noch nie herumgspielt, aber vielleicht finden wir ja eine Lösung.
    Versuch doch als erstes mal, Dir direkt das UART-Empfangsregister anzeigen zu lassen, wenn der Controller etwas empfangen hat.
    Es sieht so aus, als würdest Du die UART1-Schnittstelle verwenden (also über Pin Nr. 16 des Controllers empfangen), und dann wäre das Empfangsregister UDR1.

    Ich würde auch (erstmal) den Sprung ins Unterprogramm weglassen, um den Code so einfach wie möglich zu machen. Konkret also so:

    Code:
    Dim X as Byte
    
    ..
    Do
    A = Ischarwaiting(#1)
     If A = 1 then
      X = UDR1
      Print X
     Else
      Print "keine Daten kommen herein"
     End if
    
    Loop
    Dann siehst Du an der Variablen X schon mal, WAS überhaupt empfangen wird. Wenn der Zahlenwert von X dann dem Dezimalwert des gesendeten Zeichens entspricht (siehe ASCII-Tabellen!), kannst Du den Wert in eine String-Variable kopieren, und dann hast Du das gesendete Zeichen.

    Wieviele Zeichen sollen denn überhaupt am Stück übertragen werden? Vielleicht kannst Du das Projekt ja mal etwas detaillierter beschreiben?

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2014
    Beiträge
    5
    hallo, Sauerbruch,
    zuerst vielen Dank für Ihre Tipps.
    also, Anfangen meines Projekts brauche ich ungefahr 20 byte Daten zwischen Mcu und Handy auszutauschen. das kann String oder irgendwas. hier versuche ich eine String.
    ich benutze UART1 für Wifi Modul, dann werden die Empfangesdaten von Handy in PC (UART0) weiterleiten.
    es klappt jetzt, wenn ich etwas , zum Beispiel eine String von Pc versendet, dann kann mein Handy die String erfolgreich empfangen.
    aber wenn ich etwas von Handy versendet, Mcu kann die Daten empfangen, aber es klappt nicht, dass die Daten von Mcu ausgelesen werden.
    ich habe Ihre Code einmal zu versuchen.
    Aber leider kann Bascom den Befehl UDR oder UDR1 nicht erkennen. Weiße ich nicht genau warum.

    ich habe die Code ein bisschen geändert wie folgende:

    Dim X as String
    Dim Y as String*20


    ..
    Do
    A = Ischarwaiting(#1)
    Y=""
    If A = 1 then
    X = inkey(#1)
    Y=Ý+chr(x)
    print Y
    Else
    Print "keine Daten kommen herein"
    End if

    Loop
    es klappt auch nicht.

    ich kann die Daten nicht auslesen.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Aber leider kann Bascom den Befehl UDR oder UDR1 nicht erkennen.
    Woran macht sich das denn erkennbar? Ich habe gerade mal versuchsweise folgenden Code in Bascom eingegeben:

    Code:
    $regfile = "m324pdef.dat"                                   'Prozessortyp
    $crystal = 7372800                                          'Taktfreqwuenz
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    $baud = 9600
    
    
    Config Portb.2 = Output
    Led1 Alias Portb.2
    
    
    Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    Config Com2 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    
    
    Config Serialin0 = Buffered , Size = 254
    Config Serialin1 = Buffered , Size = 254
    
    
    Enable Interrupts
    Open "COM2:" For Binary As #1
    
    
    Dim Incoming_data As String * 200
    Dim A As Byte
    Dim C As String * 200
    Set Led1
    
    
    
    
    Do
    
    
    A = UDR1
    
    
    loop
    Das entspricht vor der Do-Loop-Schleife genau Deinem Code, aber bei mir nimmt Bascom den Befehl A = UDR1 problemlos an. Und meine Bascom-Version (1.11. ist glaube ich definitiv nicht die neueste

    Was passiert denn genau, wenn Du Deinen Code kompilierst?

Ähnliche Themen

  1. WiFi Drop - WLAN Mikrocontroller Modul
    Von aauer1 im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 2
    Letzter Beitrag: 02.07.2014, 10:16
  2. RP6 - M256 WIFI Modul
    Von markus788 im Forum Robby RP6
    Antworten: 1
    Letzter Beitrag: 26.05.2013, 17:45
  3. M256 WIFI Modul
    Von markus788 im Forum Robby RP6
    Antworten: 11
    Letzter Beitrag: 20.02.2013, 21:30
  4. Frage zu Wifi Modul
    Von toter_fisch im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 06.08.2012, 15:04
  5. Daten senden und empfangen, ich empfange nicht was ich sende
    Von Wasi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 25
    Letzter Beitrag: 25.11.2005, 17:05

Berechtigungen

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

Labornetzteil AliExpress