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-Tags eingefügt (PicNick, Mod)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
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()







Zitieren

Lesezeichen