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; }
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 ); }
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); }
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; }