Exemplo n.º 1
0
void getFreqFromSerial(unsigned short* freqM, unsigned short* freqK)
{

  *freqM  = getChar()&0xFF;
  *freqM  <<= 8; 
  *freqM  |= getChar()&0xFF;

  *freqK  = getChar()&0xFF;
  *freqK  <<= 8; 
  *freqK  |= getChar()&0xFF;
  
  if(getChar() == '\r' && getChar() == '\n')
  {
    uartSendMsg("Set freqM: ");
    uartSendNum(*freqM, 10);
    uartSendMsg("\r\n");

    uartSendMsg("Set freqM: ");
    uartSendNum(*freqK, 10);
    uartSendMsg("\r\n");
  }

  return;


}
Exemplo n.º 2
0
void setReg(unsigned char addr, short data)
{
  uartSendMsg("Set2: ");
  uartSendNum(addr, 16);
  uartSendMsg(" to ");
  uartSendNum(data, 16);
  uartSendMsg("\r\n");
  
  //SPI(0x3C, 0x0958 ); //00000001 00010001
  //SPI(addr, data);
  SPI(addr, data ); 
}
Exemplo n.º 3
0
void uartSendNum(unsigned short num, unsigned char base)
{
  char buf[20]; //sufficent for a short
  char* str = &buf[sizeof(buf)-1];

  *str = '\0';

  if (num == 0)
  {
    *--str = '0';
  } else {
    
    while(num > 0)
    {
      unsigned char digi = num % base;
      *--str = digi < 10 ? '0' + digi : 'A' + digi - 10;
      num /= base;
    }
  }
  *--str = ':';
  *--str = 'M';
  *--str = 'U';
  *--str = 'N';

  uartSendMsg(str);
  msDelay(100);

}
Exemplo n.º 4
0
void processSerialCommand()
{
  LCD_BACKLIGHT = 1;
  uartSendMsg("Check start\n");
  if (getChar() != 0xAA || getChar() != 0x55)
    return;
  uartSendMsg("Got start\n");
  unsigned char cmd = getChar();
  uartSendMsg("Got Command ");
  uartSendNum(cmd, 10);
  uartSendMsg("\n");

  switch(cmd)
  {
    case 'F':
      getFreqFromSerial(&radioSettings.rxFreqM, &radioSettings.rxFreqK);
      updateRDA1846Freq(radioSettings.rxFreqM, radioSettings.rxFreqK);
      break;
    case 'T':
      if(getChar() == '\r' && getChar() == '\n')
        rda1846TX();
      break;
    case 'R':
      if(getChar() == '\r' && getChar() == '\n')
        rda1846RX(1);
      break;
    case 'D':
      if(getChar() == '\r' && getChar() == '\n')
        rda1846TXDTMF(radioSettings.txDTMF, 6, 1000);
      break;
    case 'd':
      {
        uartSendMsg("Send Digital RTTY\n");

        unsigned char data = getChar()&0xFF;

        short time = getChar()&0xFF;
        time <<= 8;
        time |= getChar()&0xFF;

        if(getChar() == '\r' && getChar() == '\n')
          rda1846TXDigital(data, time,
              5796, //Mark 1.415Khz
              6492 //space 1.585Khz
              );
        uartSendMsg("Send Digital Done\n");
      }
      break;
    case 'S':
      {
        unsigned char addr = getChar()&0xFF;

        short data = getChar()&0xFF;
        data <<= 8;
        data |= getChar()&0xFF;

        if(getChar() == '\r' && getChar() == '\n')
        {
          uartSendMsg("Set: ");
          uartSendNum(addr, 16);
          uartSendMsg(" to ");
          uartSendNum(data, 16);
          uartSendMsg("\r\n");

          rda1846SetReg(addr, data); //, data);
        }
      }
      break;
  }
  LCD_BACKLIGHT = 0;

}