Cogs Variablen übertragen

11.04.2007

Jetzt weiss ich auch wie man im Propeller Chip Variablen zwischen den Cogs austauscht. Mit folgendem Programm kann man es gut verfolgen.

var
long stack1[6] ‘stack für 2. cog reservieren

dat
buffer byte $FF ‘1 byte puffer belegen (Datenaustausch zwischen den Cogs)

obj
ext : “external”

pub main

byte[@buffer]:=7 ‘byte an adresse @buffer auf 7 setzen
ext.sieben(byte[@buffer]) ‘zum test die 7 anzeigen
waitcnt(clkfreq+cnt)

ext.sieben(0) ‘einfach danach eine 0 anzeigen
waitcnt(clkfreq+cnt)

cognew(getn,@stack1) ‘2. cog starten und getn aufrufen

repeat ‘ab hier schleife für den 1. cog die ständig den wert
ext.sieben(byte[@buffer]) ‘an adresse @buffer ausliest und anzeigt

pub getn ‘routine für den 2. cog

repeat 4 ‘4x die schleife wiederholen
byte[@buffer]:=byte[@buffer]+1 ‘zum byte an adresse @buffer 1 hinzu addieren
waitcnt(clkfreq+cnt) ‘warten da sonst zu schnell addier würde

Schreibe einen Kommentar