jcrypter
27.02.2015, 09:28
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
$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
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
$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