示例#1
0
uint8_t rfm70InitRegisters()
{
	uint8_t i, j, val;
	uint8_t buf[11];
	
	RFM70_ER(rfm70SetBank(1));
	for (i = 0; i <= 0x0d; i++)
	{
		for (j = 0; j < 4; j++)
			buf[j] = Bank1_Reg0_13[i][j];
		RFM70_ER(rfm70WriteRegister(i, buf, 4));
	}
	for (j = 0; j < 11; j++)
		buf[j] = Bank1_Reg14[j];
	RFM70_ER(rfm70WriteRegister(0x0e, buf, 11));
	
	RFM70_ER(rfm70SetBank(0));
	return RFM70_SUCCESS;
}
示例#2
0
文件: main.c 项目: LazyLinol/roscs_hw
void main(void)
{
  // Stop watchdog timer
  WDTCTL = WDTPW + WDTHOLD;
  
  // set clocks
  BCSCTL1 = CALBC1_1MHZ;
  DCOCTL = CALDCO_1MHZ;
  BCSCTL2 &= ~(DIVS_3);

  // port 1 init  
  P1DIR |= LED1 + LED2;
  P1OUT = 0x00;
  
  P2DIR |= RFM70_CSN + RFM70_CE;
  P2OUT = 0x00;
  P2OUT |= RFM70_CSN;
  
  //init button
  P1DIR &= ~BUTTON;  
  P1OUT |= BUTTON;
  P1REN |= BUTTON;
  
  working_mode = MODE_PC_CONN_WAIT;

  // init ADC
  configureAdcTempSensor();
  
  // init SPI
  initSpi();
  
   // wait to init SPI slave device
  __delay_cycles(200);
  
  // init UART
  initUart();
  
  // delay
  __delay_cycles(200);

  // wait for correct data by reading status register
  while (rx != 0x0E) {
    rx = rfm70Nop();
    // turn on red led while not initialized
    P1OUT |= LED1;
    P1OUT |= LED2;
    __delay_cycles(200);
  }
  // got slave response, turn red led off
  P1OUT &= ~LED1;
  P1OUT &= ~LED2;
  
  __bis_SR_register(LPM0_bits + GIE);
  
  // working ...
  rfm70Init();
  rfm70SetRxMode();
  while (1) {
    // detect carrier
    rfm70ReadRegister(rfm70_buffer, RFM70_CD, 1);
    if (rfm70_buffer[0] == 0x01) {
      P1OUT |= LED1;
    }
    else {
      P1OUT &= ~LED1;
    }
    // receive data
    rfm70ReadRegister(rfm70_buffer, RFM70_R_RX_PL_WID, 1);
    rx = rfm70Nop();
    if (rx & (1 << 6)) {
      rfm70ReadRxPayload(rfm70_buffer, 1);
      //sendUart(rfm70_buffer[0]);
      //sendUart('T');
      if (rfm70_buffer[0] == 0xFF) {
        P1OUT |= LED1;
      }
      else {
        P1OUT &= ~LED1;
      }
      // clear interrupt status
      rfm70_buffer[0] = 0x00;
      rfm70WriteRegister(rfm70_buffer, RFM70_STATUS, 1);
    }
  }

  //__bis_SR_register(LPM0_bits + GIE);
}