17 #include "simpletools.h" 19 void dac_ctr_cog(
void *par);
22 #define DUTY_SE (0b110 << 26) 25 static unsigned int stack[44 + 16];
27 static int dacCtrBits;
28 static unsigned int cog;
29 static volatile int ctra, ctrb, frqa, frqb;
31 void dac_ctr_res(
int bits)
36 void dac_ctr(
int pin,
int channel,
int dacVal)
38 if(dacCtrBits == 0) dacCtrBits = 8;
39 int dacBitX = 32 - dacCtrBits;
41 if(!cog) cog = cogstart(dac_ctr_cog, NULL,
42 stack,
sizeof(stack)) + 1;
45 ctra = (DUTY_SE + pin);
46 frqa = (dacVal << dacBitX);
50 ctrb = (DUTY_SE + pin);
51 frqb = (dacVal << dacBitX);
55 void dac_ctr_cog(
void *par)
64 pin = CTRA & 0b111111;
71 pin = CTRA & 0b111111;
80 pin = CTRB & 0b111111;
87 pin = CTRB & 0b111111;
96 void dac_ctr_stop(
void)
98 if(cog) cogstop(cog - 1);