int main() { ///////// System Clock Initialization ///////// // Fosc = 12MHz // MSEL=4, PSEL=1 // PLLCFG=0100100=0x24=36 // cclk = 60MHz // Fcco = 240MHz PLLCFG = 0x24; // Enable PLL PLLCON = 0x1; PLLFEED = 0xAA; PLLFEED = 0x55; // Wait for PLL to achieve lock while(!(PLLSTAT & 0x400)); // Connect PLL PLLCON=0x3; PLLFEED=0xAA; PLLFEED=0x55; ///////// Peripheral Clock Initialization ///////// // Set periphery divider // 0x00 => /4 // 0x01 => /1 // 0x02 => /2 APBDIV_bit.APBDIV = 0x02; serialInit(UART0, 115200); if (initOF() == false) { serialPuts(UART0, "SPI Init Error\n"); } while (1) { updateOF(); if (_motion == false) serialPuts(UART0, "no "); serialPuts(UART0, "motion\n"); if (_overflow == true) serialPuts(UART0, "overflow\n"); serialPuts(UART0, "squal: "); serialPuti(UART0, surface_quality); serialPutc(UART0, '\n'); serialPuti(UART0, raw_dx); serialPutc(UART0, '\n'); serialPuti(UART0, raw_dx); serialPutc(UART0, '\n'); delay(1000); } }
void cliTask(void * pdata) { char line[CLI_COMMAND_MAX_LEN+1]; int pos = 0; cliPrompt(); for (;;) { uint8_t c; while (!cliRxFifo.pop(c)) { CoTickDelay(10); // 20ms } if (c == 12) { // clear screen serialPrint("\033[2J\033[1;1H"); cliPrompt(); } else if (c == 127) { // backspace if (pos) { line[--pos] = '\0'; serialPutc(c); } } else if (c == '\r' || c == '\n') { // enter serialCrlf(); line[pos] = '\0'; cliExecLine(line); pos = 0; cliPrompt(); } else if (isascii(c) && pos < CLI_COMMAND_MAX_LEN) { line[pos++] = c; serialPutc(c); } } }
void cliPrompt() { serialPutc('>'); }