Hey,
ich habe ein Problem bei der Kommunikation von zwei Mikrocontrollern (einem Mega128 und einem Mega32). Dabei sendet der Mega128 dem Mega32 einen Befehl, dass dieser eine Led einschalten soll. Das Senden des Befehles vom Mega128 funktioniert, leider reagiert der Mega 32 nicht darauf. Die Beschaltung der beiden Megas ist richtig, also müsste es ein Software-Problem sein.
Könnte sich vielleicht jemand die beiden Quelltexte mal anschaun und sagen worin der Fehler steckt.
Vielen Dank im voraus.
Quelltext des Empfängers(Mega32):
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600
Dim I As Byte
Config Pinc.0 = Output
Led Alias Portc.0
On Urxc Onrxd
Enable Urxc
Enable Interrupts
Main:
Do
Loop
End
OnRxD:
I = Udr
If I = "s" Then
Led = 1
else
Led = 0
endif
Return
Quelltext des Senders(Mega128):
$regfile = "m128def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 19200
$baud1 = 9600
Open "com2:" For Binary As #2
'****SRF05****
Declare Sub Entfernungsmessung()
Config Pinb.7 = Output
Portb.7 = 0
Dim Zeitmessung As Word
Dim Entfernung As Word
Enable Interrupts
Main:
Do
Call Entfernungsmessung()
Loop
End
Sub Entfernungsmessung()
Portb.7 = 0
Pulseout Portb , 7 , 40
Pulsein Zeitmessung , Pinb , 7 , 1
Zeitmessung = Zeitmessung * 10
Entfernung = Zeitmessung / 58
If Entfernung < 10 Then
Print #2 , "s"
Else
Print #2 , "w"
End If
End Sub
Code-Tags eingefügt (PicNick, Mod)
Lesezeichen