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







Zitieren
Lesezeichen