Ich habs jetzt:
Vielleicht nicht die eleganteste Lösung aber es Funktioniert! (zumindest halbwegs!)
Code:
'Test programm für die Conrad RS232 Relaisplatine Best. Nr.: 967720
$regfile = "m32def.dat" 'Die Anweisung bestimmt Controllertyp, hier AVR Mega 32
$framesize = 32 'Stackanweisungen, die eigentlich nur bei größeren Programmen
$swstack = 32 'wirklich nötig werden
$hwstack = 32
$crystal = 16000000 'Die Frequenz des verwendeten Quarzes
$baud = 19200 'Die Baudrate für RS232 Ausgabe.
Dim A As Byte ' die Ausgabe Bytes definieren
Dim B As Byte 'A ist der Erste Befehl:
Dim C As Byte '1 = Platine Initialisieren, 2 = Schaltzustände abfragen,
Dim D As Byte '3 = Relais schalten, 4 = Option abfragen,
Dim I As Integer '5 = Option setzten (Brodcast(an alle Platinen)
'die Relaisplatine initialisieren 'B = Platinenadresse (1...256)
A = 1 'C = Relaisadressse:
B = 1 '1= Rel1; 2= Rel2; 4= Rel3; 8=Rel4 usw.
C = 0 'D = Prüfsumme = A Xor B Xor C
D = A Xor B
D = C Xor D
Print Chr(a) ; Chr(b) ; Chr(c) ; Chr(d)
Wait 1
'sämtliche Kombinationen durchschalten
Start1:
A = 3
I = 0
I = I + 1
C = I
D = A Xor B
D = C Xor D
Print Chr(a) ; Chr(b) ; Chr(c) ; Chr(d)
Wait 1
Do
I = I + 1
C = I
D = A Xor B
D = C Xor D
Print Chr(a) ; Chr(b) ; Chr(c) ; Chr(d)
Wait 1
Loop Until I = 256
Goto Start1
Gruß Florian
Lesezeichen