- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 7 von 7

Thema: Bluetooth RN-42 und Mega8 Bascom - senden/empfanden funktioniert nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    585

    Bluetooth RN-42 und Mega8 Bascom - senden/empfanden funktioniert nicht

    Guten Morgen liebes Forum,

    ich versuche einen ATMeg8 mit einem RN-42 http://www.watterott.com/de/Bluetooth-SMD-Module-RN-42 zu koppeln.

    Das Modul selbst funktioniert, ich habe es über eine MySmartUSB 2 als UART Brücke an den PC angeschlossen und das funktioniert.
    Ich habe die Baudrate per AT-Kommando auf 4800 gesetzt, da ich das Modul dann am ATMega8 ohne Quarz bei 1MHz betreiben kann. Für einen ersten Versuch reicht das.
    Die Spannungsverorgung läuft ebenfalls über das MySmartUSB, es sind 3V.

    Ich habe ein Bascom Programm geschrieben, dass eine empfangene Zahl um eins erhöht zurückschickt.
    Wenn ich den Mega8 direkt über die UART Brücke an den PC anschließe funktioniert das einwandfrei.


    Also, das Bascom Programm funktioniert, das Modul alleine funktioniert auch. Nur wenn ich die beiden zusammenschließe funktioniert es nicht.

    Das LCD ist nicht angeschlossen, habe momentan nur eins für 5V einsatzbereit.
    Anbei das Programm

    Code:
    $regfile = "m8def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1000000
    
    $baud = 4800
    
    Declare Sub Serial0charmatch()
    
    Config Serialin = Buffered , Size = 30 , Bytematch = 13
    Config Serialout = Buffered , Size = 30
    Enable Interrupts
    
    Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , _
       Db7 = Portb.0 , E = Portb.7 , Rs = Portb.6
    Config Lcd = 16 * 1a
    
    Dim Empfangenedaten As Long
    Dim Umrechnen As Long
    Dim Datenempfangen As Long
    
    
    Cls
    Lcd "start"
    Empfangenedaten = 10
    Datenempfangen = 0
    
    
    'als  Start der KOmmunikation muss ein Chip die ersten Daten schicken, etwas  Wartezeit, um sicher zustellen, das beide Chips laufen
    Waitms 1000                                                 ' beim zweiten chip auskommentieren
    'Print Empfangenedaten                                       ' beim zweiten chip auskommentieren
    
    
    Do
    
    
    
    
         If Datenempfangen = 1 Then                             'nur wenn Daten empfangen wurden, wird etwas damit getan
           Waitms 1000
           Cls
           Lcd Empfangenedaten                                  'die Daten werden unverändert auf einem LCD ausgegeben
    
           Umrechnen = Empfangenedaten + 1
           Print Umrechnen                                      ' die veränderten Daten werden zurückgeschickt
           Lcd Umrechnen
    
           Datenempfangen = 0
           Clear Serialin                                       'der empfangspuffer muss geleert werden
         End If
    
    Loop
    End
    
    
    Sub Serial0charmatch()
       Local Incoming_data As Long
       Input Incoming_data Noecho
    
       Empfangenedaten = Incoming_data
       Datenempfangen = 1                                       'hinweis: es wurden daten empfangen, tue etwas
    
    End Sub
    
    
    End

    ich hoffe einer von euch hat eine Idee!


    Crypi

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    Stimmt denn die Zuordnung TX-RX RX-TX zwischen den Modulen? GND ist auch verbunden?
    Ansonsten kann man ja eine LED einschalten lassen, wenn der ATMega8 was empfängt bzw den ATMega8 beim Starten was senden lassen. Vielleicht klappt ja nur einwas nicht. Kenne mich mit Bascom ansonsten aber nicht aus und wenn du sagst, dass es sonst funktioniert, kanns ja nur noch die Verdrahtung sein.

    Ansonsten verwende ich das RN42 auch zum Schnüffeln und das funktioniert echt gut.
    sast

    雅思特史特芬
    开发及研究

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    585
    Ich habe die Verdrahtung zwischen Rx und Tx auch hin und her getauscht. Das ist es nicht.
    Die Spannungsversorgung läuft über die gleiche Quelle, damit ist Ground ja verbunden, oder?

    Ich dachte, dass vielleicht in Bascom noch irgendwas anders eingestellt werden muss, auch wenn ich mir nicht erklären könnte was das ist.

    Kann es sein, dass das Bascom Programm/das BT-Modull mit unterschiedlichen Zeilen-Endzeichen, cr oder was auch immer, arbeitet und es deswegen nicht geht?

    Bzgl. nach dem Start etwas senden lassen: ich habe den Mega8 mal testweise alle halbe Sekunde was senden lassen, unabhängig davon ob er was empfängt. Hat nicht funktioniert.
    Vielleicht schaffe ich es heute das LCD für 3V fertig zu machen, ansonsten ist das mit den LEDs eine gute Idee.

    Muss man dem Bluetooth-Modul vielleicht irgendwie Zeit geben zum Initialisieren bevor man im Programm den UART konfiguriert?

    Crypi
    Geändert von jcrypter (27.02.2015 um 14:32 Uhr)

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    Bei mir startet das Ganze mit dem µC. Dem Modul ist dein Endezeichen egal. Das sendet die Zeichen, die du ihm gibst.Wenn das Programm mit einem Max232 oder FTDI funktioniert und du was auf dem Rechner empfängst und senden kannst, dann geht das auch mit dem Bluetoothmodul. Das Einzige, was bei meinem BT Terminal auf dem Windowsphone rumzickt, ist, dass eine Anzeige erst kommt, wenn ein Enter gesendet wird. Da hab mich auch am Anfang mit aufgehalten. Jetzt wo ichs weiß, ist das kein Problem mehr.

    Wie gesagt, kenne ich mich mit Bascom nicht aus. Hängt das Programm vielleicht, weil es auf was vom lcd wartet? Irgendeine Anzeige, ob überhaupt was passiert ist da immer hilfreich.

    雅思特史特芬
    开发及研究

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    585
    Ich werde es mal mit dem LCD probieren.
    Vielleicht finde ich da irgendwas hilfreiches heraus.

    Crypi

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    585
    Guten Morgen,

    LCD läuft, der Rest auch.

    Letztlich war meine Vermutung zum Teil richtig.
    Es stimmte etwas mit dem Endzeichen nicht. Die Terminal-App auf dem Hand war falsch eingestellt. Sie hat kein CR gesendet.
    Dass bedeutet, das Programm auf dem Chip hat niemals eine gültige Nachricht erhalten und konnte nie etwas zurücksenden.

    Warum meine isolierten Senden-Tests vom Chip zum Handy nicht funktioniert haben weiß ich nicht. Vielleicht in dem Fall tatsächlich die Kabel vertauscht? Ich weiß es nicht.

    Abschließend: das Programm und das Modul funktionieren beide richtig.

    Danke für deine Hilfe!

    Crypi

Ähnliche Themen

  1. microsps_pcf8574p(TWI) senden funktioniert nicht
    Von atan09 im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 02.11.2009, 13:33
  2. Mega8 Mini-Modul wird in Bascom nicht erkannt
    Von grind im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 18.05.2007, 14:05
  3. Bascom Counter funktioniert nicht.
    Von EDatabaseError im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 29.03.2007, 22:06
  4. UART String bzw. Variable senden funktioniert nicht
    Von BlueVenom im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 05.03.2007, 12:21
  5. LCD an Mega8 funktioniert nicht
    Von MarkusH im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 18.04.2005, 22:45

Berechtigungen

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

Solar Speicher und Akkus Tests