Hallo,
der Testaufbau ist fertig.
Der Sender sendet nun ca alle 10 Sekunden den Text "Wert1"
Print "Wert1"

Der Empfänger soll den Text erstmal nur empfangen und auf dem LCD ausgeben. Leider tauchen alle 10 sekunden nur ein paar zahlen auf....

(Damit der µC noch etwas nebeibei tut, wird Variable Test1 und Test2 hochgezählt und die LCD Beleuchtung blinkt um zu sehen das der µC aktiv ist)

Hier mein Empfängercode:
Code:
'Autobussystem Empfänger
'basierend auf RS232

 'Problem mit Taster 5??? NEIN, weil Progadapter drauf war!!!
'-------------------------------------------------------------------------------
'Konfiguration µC:

$regfile = "m8def.dat"                                      'AT-Mega8
$crystal = 8000000                                          'Quarz: 8 MHz
$baud = 9600                                                'Baudrate definieren
'-------------------------------------------------------------------------------
'Ein / Ausgänge definieren:
Ddrb = &B11000001                                           'PB7-0: 1 Ausgang, 0 Eingang = Pin PB5-1 als Eingang
Ddrc = &B0000001                                            'PC6-0: 1 Ausgang, 0 Eingang = Pin PC6-1 als Eingang

'PullUps setzen:
Portb = &B00111110                                          '1 = PullUp AKTIV   ->PB 7,6,0 nicht aktiv
Portc = &B0111110                                           '1 = PullUp AKTIV   ->PC 6,0 nicht aktiv


'-------------------------------------------------------------------------------
'LCD konfiguration
Config Lcd = 16 * 2                                         'LCD größe
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , Rs = Portb.6 , E = Portb.7
Cursor Off Noblink

'-------------------------------------------------------------------------------
'Alias
Taster1 Alias Pinb.1
Taster2 Alias Pinb.2
Taster3 Alias Pinb.3



'-------------------------------------------------------------------------------
'Variablen
Dim Test1 As Integer
Dim Test2 As Integer

Dim Wert1 As Integer
Dim Wert2 As Integer

Dim I As integer                                               'Wert von RS232
'-------------------------------------------------------------------------------
'Timer
'Timer1 = 2x / sec bei 8MHz
Config Timer1 = Timer , Prescale = 256                      'Teiler
Const Timervorgabe = 49910
Enable Timer1
Enable Interrupts
On Timer1 Lcd                                               'timer einschalten


'-------------------------------------------------------------------------------
'Für RS232:
On Urxc Onrxd                                               'Interrupt-Routine setzen
Enable Urxc                                                 'Interrupt URXC einschalten
Enable Interrupts                                           'Interrupts global zulassen
'-------------------------------------------------------------------------------

Main:                                                       'Hauptschleife

'analogeingang auslesen und in Variable Wert1 schreiben

'IRGENDETWAS MACHEN:
Incr Test1
If Test1 = 65000 Then
Toggle Portc.0                                              'LCD Beleuchtung
Incr Test2
Test1 = 0
End If


Goto Main

'-------------------------------------------------------------------------------
Onrxd:
I = Udr                                                     'aus der UART auslesen
Lcd I

'If I = "Wert1" Then
'Print Wert1                                                 'Wobei Wert1 zb. ein vorher analogeingelesender Wert ist
'Locate 2 , 1
'Lcd Wert1
'End If

Return


'-------------------------------------------------------------------------------
'Timer0zähler:
'Timer1 = 49910
'Incr Timer0_60
'
'If Timer0_60 > 30 Then
'Timer0_60 = 0
'Gosub Lcd                                                   'und später das Programm hier fortführen!
'Toggle Portc.0
'End If
'Return



'-------------------------------------------------------------------------------
Lcd:
Timer1 = 49910
Cls                                                         'Display löschen (IMMER ERST LCD LÖSCHEN UND DANN POSITION ANGEBEN!!!)
Locate 1 , 1
Lcd "Test2: " ; Test2
'Locate 2 , 1
'Lcd + Str(timer0_60)
Return


'===============================================================================
'Pinbelegung µC    Miri Rechner
'===============================================================================
'                    AT MEGA 8
'                    +---U---+
'         Reset  PC6 +1    28+ PC5 Taster10
'          RXD   PD0 +2    27+ PC4 Taster9
'          TXD   PD1 +3    26+ PC3 Taster8
'                PD2 +4    25+ PC2 Taster7
'                PD3 +5    24+ PC1 Taster6
'                PD4 +6    23+ PC0 LCD Beleuchtung
'                Vcc +7--- 22+ GND           | / Reset  |
'                GND +8  |-21+ AREF          | / GND    |
'            RS  PB6 +9  |-20+ AVCC          | / +5V    |
'            E   PB7 +10   19+ PB5  Taster5  | / SCK    |
'    / LCD / DB4 PD5 +11   18+ PB4  Taster4  | / MISO   |
'    / LCD / DB5 PD6 +12   17+ PB3  Taster3  | / MOSI   |
'    / LCD / DB6 PD7 +13   16+ PB2  Taster2  ___________
'    / LCD / DB7 PB0 +14   15+ PB1  Taster1
'                    +-------+



'===============================================================================
'Pinbelegung AM LCD!!!!!!! ACHTUNG!!!!!
'===============================================================================
'Pin 1: GND
'Pin 2: +5V
'Pin 3: Kontrast (0-5V)
'Pin 4: RS  -> AVR
'Pin 5: R/W -> GND (read/write mode, nur writen)
'Pin 6: E   -> AVR
'Pin 7-10:  -> GND
'Pin 11-14: -> AVR -> 11=DB4 / 12=DB5 / 13=DB6 / 14=DB7
'Pin 15-16: Beleuchtung