Forum: Mikrocontroller und Digitale Elektronik Bitte Hilfe bei String empfangen und ausgeben am LCD mit Bluetooth Modul (Bascom)


von Peter (Gast)


Lesenswert?

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

von MWS (Gast)


Lesenswert?

Was soll denn das sein ?

-> Dim S As String * 1

Ein 1 Byte langer String ?

-> S = S + Chr(udr)

String läuft nach zweitem Aufruf über, wird auch nie gelöscht.

von Peter (Gast)


Lesenswert?

ahh,

s = ""

hat gefehlt.

Jetzt scheint es zu funktionieren, danke!

Der String besteht nur im Moment aus einem Byte, werden später mal mehr 
werden.

Danke
Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.