float ecpu_use() { typedef struct { u1_t f0, g0, f1, g1, f2, g2, f3, g3; } ctr_t; ctr_t *c; SPI_MISO cpu; if (down || do_fft) return 0; spi_get_noduplex(CmdGetCPUCtr, &cpu, sizeof(u2_t[3])); c = (ctr_t*) &cpu.word[0]; u4_t gate = (c->g3 << 24) | (c->g2 << 16) | (c->g1 << 8) | c->g0; u4_t free = (c->f3 << 24) | (c->f2 << 16) | (c->f1 << 8) | c->f0; spi_set_noduplex(CmdCPUCtrClr); return ((float) gate / (float) free * 100); }
void ctrl_clr_set(u2_t clr, u2_t set) { if (clr) spi_set_noduplex(CmdCtrlClr, clr); if (set) spi_set_noduplex(CmdCtrlSet, set); }