
Jetzt hab ich mir ein Ei gelegt.
Da jetzt 2COG's auf die print routine zugreifen können passieren ja die tollsten sachen.
Um eine Vorrang verriegelung brauch ich mir keine sorgen zu machen das Wird schon über die Slots geregelt
DSCI0174.JPG
Start des 3.VGA-COG's
Code: Alles auswählen
....
'if both COGs launched, return true
if cog[0] and cog[1]
pr_chr($E)
cog[2] := cognew(slotr(slotvec), @stack)
if cog[0] and cog[1] and cog[2]
return true
'else, stop any launched COG and return false
else
stop
'else, stop any launched COG and return false
else
stop
Horchroutine sie dient nur zur Anzeige der Daten im Slot.
Code: Alles auswählen
PUB slotr(slotvec)| t
pr_str(string(" ******************", $A))
pr_str(string(" * Monitor v. 0.1 *", $A))
pr_str(string(" * (c) PIC18F2550 *", $A))
pr_str(string(" ******************", $A, $A))
pr_str(string(" Slotvector : ", $A,$A,))
pr_str(string(" ## Eingangspuffer ## ", $A,))
pr_str(string(" Status : ", $A,))
pr_str(string(" Eigene ID : ", $A,))
pr_str(string(" Absender ID : ", $A,))
pr_str(string(" Datenlänge : ", $A,))
pr_str(string(" Daten : ", $A,$A,))
pr_str(string(" ## Ausgangspuffer ## ", $A,))
pr_str(string(" Status : ", $A,))
pr_str(string(" Empfänger ID : ", $A,))
pr_str(string(" Eigene ID : ", $A,))
pr_str(string(" Datenlänge : ", $A,))
pr_str(string(" Daten : ", $A,$A,))
repeat
pr_strat( 5,16,str.integerToHexadecimal(slotvec,4))
pr_strat( 8,16,str.integerToHexadecimal(byte[slotvec][0],2))
pr_strat( 9,16,str.integerToHexadecimal(byte[slotvec][1],2))
pr_strat(10,16,str.integerToHexadecimal(byte[slotvec][2],2))
pr_strat(11,16,str.integerToHexadecimal(byte[slotvec][3],2))
repeat t from 0 to 15
pr_strat(12,16 + t * 3 ,str.integerToHexadecimal(byte[slotvec][4 + t],2))
pr_chr(" ")
pr_strat( 15,16,str.integerToHexadecimal(byte[slotvec][20],2))
pr_strat( 16,16,str.integerToHexadecimal(byte[slotvec][21],2))
pr_strat( 17,16,str.integerToHexadecimal(byte[slotvec][22],2))
pr_strat( 18,16,str.integerToHexadecimal(byte[slotvec][23],2))
repeat t from 0 to 15
pr_strat(19,16 + t * 3 ,str.integerToHexadecimal(byte[slotvec][24 + t],2))
pr_chr(" ")