예제 #1
0
파일: main.c 프로젝트: Nimajamin/ADNS3080
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);
  }
  
}
예제 #2
0
파일: cli.cpp 프로젝트: JASSoft1/opentx
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);
    }
  }
}
예제 #3
0
파일: cli.cpp 프로젝트: JASSoft1/opentx
void cliPrompt()
{
  serialPutc('>');
}