17 #include <propeller.h>
20 #define printf __simple_printf
28 static int cog_stack[STACK_SIZE][8];
31 volatile unsigned int wait_time;
32 volatile unsigned int startcnt;
33 volatile unsigned int pins;
34 volatile int syncstart;
42 unsigned int bits = 1 << WCpin;
53 unsigned int mask = 1 << WCpin;
62 void do_toggle(
void *arg)
67 while(syncstart == 0) ;
69 nextcnt = wait_time + startcnt;
73 nextcnt =
waitcnt2(nextcnt, wait_time);
75 nextcnt =
waitcnt2(nextcnt, wait_time);
79 int main (
int argc,
char* argv[])
83 int pin[] = { 16, 17, 18, 19, 20, 21, 22, 23 };
90 for(n = 1; n < COGS; n++) {
91 cog = _start_cog_thread(cog_stack[n] + STACK_SIZE, do_toggle, (
void*)pin[n], &thread_data);
92 printf(
"Toggle COG %d Started\n", cog);
97 nextcnt = wait_time + startcnt;
101 nextcnt =
waitcnt2(nextcnt, wait_time);
103 nextcnt =
waitcnt2(nextcnt, wait_time);