Grüß euch und schönen Abend,
ich habe folgendes Problem:
Gegeben sind zwei Atmega8 an denen jeweils ein BTM222 Bluetooth Modul
angeschlossen ist.
An dem einen AVR wird eine Spannung gemessen, per Bluetooth mittels dem
Print Befehl an die Uart geschickt. So weit so gut, funktioniert alles.
Der anderen AVR soll nun die Spannung an einem LCD ausgeben.
Der String wird auch empfangen und ordentlich weitergegeben von dem
Bluetooth Modul an den AVR. Dies habe ich mit dem Windows Terminal
überprüft. Dort kommen die Werte super im Sekundentakt an. Genau so wie
es sein soll.
Dann stehe ich aber an. Das LCD zeigt zwar den Wert an, schreibt aber
immer weiter und überschreibt die Zahlen. Es wird dann ein WirrWarr an
Zahlen am Display. Mir kommt es so vor, als wenn der Wert erst langsam
angezeigt wird und dann wirds immer schneller, das sehe ich weil dann
das Display immer öfters flackert.
Was kann hier nicht stimmen? Anbei der Code für Bascom.
Vielen Dank
Lg Peter
1 | $regfile = "m8def.dat"
|
2 | $crystal = 8000000
|
3 |
|
4 | $baud = 9600
|
5 |
|
6 | Config Portd.5 = Output
|
7 | Config Portb.0 = Output
|
8 | Config Portd.6 = Output
|
9 | Config Portd.7 = Output
|
10 | Config Portb.1 = Output
|
11 | Config Portb.2 = Output
|
12 | Config Portd.2 = Output
|
13 |
|
14 | Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portb.0 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.1 , Rs = Portb.2
|
15 | Config Lcd = 16 * 2
|
16 | Cursor Off
|
17 |
|
18 | On Urxc Onrxd
|
19 | Enable Urxc
|
20 | Enable Interrupts
|
21 |
|
22 | Dim S As String * 1
|
23 |
|
24 | Cls
|
25 | Lcd "Hallo"
|
26 | Wait 1
|
27 | Cls
|
28 |
|
29 | Do
|
30 |
|
31 | Locate 1 , 1
|
32 | Lcd S
|
33 |
|
34 | Loop
|
35 | End
|
36 |
|
37 |
|
38 | Onrxd:
|
39 | S = S + Chr(udr)
|
40 | Return
|