Bascom UART Bytes einzeln empfangen

OP Persönliche Seite #1052705
Lesenswert?

Hallo
Ich habe hier einen ATMega8 der über die UART Daten von einem anderen µC 
bekommt. Die Daten sind Text (und Zahlen).
Ich zeige die empfangenen Daten in einem 16*2 Display an.
Ich will das in Bascom so programmieren, dass ich merke, wenn die 
Zeichenanzahl>16 ist, damit ich in der zweiten Zeile des LCD 
weiterschrieben kann, bzw wenn die Zeichenanzahl>32 ist gibt er eine 
Rückmeldung, dass die Datenmenge zu groß ist.
Dazu müsste ich aber die Bytes einzeln empfangen. Wie ght das?
Mein derzeitiger Code ist folgender:
1
$regfile = "m8def.dat"                                      'ATMEga8
2
$crystal = 4000000                                          '4Mhz
3
$baud = 9600
4

5
Dim I As String * 32
6
Dim P As Byte
7
Dim X As Byte
8

9
Config Serialin = Buffered , Size = 32                      'RS232 mit 32 Zeichen Empfangspuffer
10

11
Config Lcd = 16 * 2                                         'LCD 2 Zeilen, 16 Zeichen
12
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.3 , Db6 = Portc.2 , Db7 = Portc.1 , E = Portd.7 , Rs = Portb.0       'LCD Pin-Config
13
Config Lcdbus = 4
14

15
Config Portc.5 = Output
16
Portc.5 = 1
17

18
Enable Interrupts
19

20
Cls                                                         'Lösche Display
21

22
Do
23
  X = Ischarwaiting()                                       'Zeichen im Buffer?
24
  If X <> 0 Then
25
    Input I                                                 'Lesen eines Zeichens
26
    Cls                                                     'Lösche Display
27
    Locate 1 , 1                                            'Cursors setzten
28
    Lcd I                                                   'Ausgabe auf Lcd
29
    End If
30
Loop
31

32
End

Ich hoffe mir kann jemand helfen.

Gruß Nils

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren