コード例 #1
0
/**************************************************************************************************
* \fn nRF_WriteTXPayload()
* \brief Send wireless packet
* Send block of 4 to be sure de SPI fifo is not overflown
*
**************************************************************************************************/
void nRF_WriteTXPayload(GPIO_Handle HandleGPIO,SPI_Handle HandleSPI,uint16_t payloadLenght)
{
	uint8_t i=0;
	uint8_t j=0;
	uint16_t entireBlock = payloadLenght/4;
	uint16_t restBlock = payloadLenght%4;

	nRF_setCSN(false,HandleGPIO); 	// CSN pin LOW

	SPI_write(HandleSPI, W_TX_PAYLOAD);
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_1_Word);
	HandleRF.Reg[R_STATUS] = SPI_read(HandleSPI);
	for(i = 0; i < entireBlock; ++i){
		for(j=0; j<4; ++j){SPI_write(HandleSPI, HandleRF.TXPayload[j+(4*i)]<<8);}
		for(j=0;j<4;++j){
			while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_1_Word);
			HandleRF.Reg[R_JUNK] = SPI_read(HandleSPI);
		}
	}
	for(j=0; j<restBlock; ++j){SPI_write(HandleSPI, HandleRF.TXPayload[j+(4*entireBlock)]<<8);}
	for(i = 0; i < restBlock; ++i){
		while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_1_Word);
		HandleRF.Reg[R_JUNK] = SPI_read(HandleSPI);
	}

	nRF_setCSN(true,HandleGPIO);
	//System_100usDelay(100);
	//nRF_setCE(true,HandleGPIO);  //minimum 10 us pulse to send data
	//System_100usDelay(100);
	//nRF_setCE(false,HandleGPIO);
}
コード例 #2
0
void nRF_WriteRegister (SPI_Handle HandleSPI,GPIO_Handle HandleGPIO,uint16_t Reg,uint16_t value)
{
	nRF_setCSN(false,HandleGPIO);
	SPI_write(HandleSPI,W_REGISTER | Reg); //register adress
	SPI_write(HandleSPI, value << 8);
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_2_Words); //wait for status and junk
	HandleRF.Reg[R_STATUS] = SPI_read(HandleSPI);
	HandleRF.Reg[R_JUNK] = SPI_read(HandleSPI);
	nRF_setCSN(true,HandleGPIO);
}
コード例 #3
0
uint16_t nRF_ReadRegister(SPI_Handle HandleSPI,GPIO_Handle HandleGPIO,uint16_t Reg){
	uint16_t answer = 0;
	nRF_setCSN(false,HandleGPIO); //Set csn for spi communication
	SPI_write(HandleSPI, Reg); //register adress
	SPI_write(HandleSPI, Reg); //dummy data
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_2_Words); //wait for two words (STATUS + REG)
	HandleRF.Reg[R_STATUS] = SPI_read(HandleSPI);
	answer = SPI_read(HandleSPI);
	nRF_setCSN(true,HandleGPIO);
	return answer;
}
コード例 #4
0
ファイル: main.c プロジェクト: danghuutoan/template
int main(void)
{
    uint8_t tmp;

    InitFifo();
    USART_Config();
    LED_Init();
//    I2C_Configuration();
    Systick_Init();
    mySPI_Init();
    //spi();
    //Delay(1000);
    printf("init SPI test \n\r");
  SPI_send(0x23, 0xc9);                         // resetting the accelerometer internal circuit
  SPI_send(0x20, 0x67);                         // 100Hz data update rate, block data update disable, x/y/z enabled 
  SPI_send(0x24, 0x20);                         // Anti aliasing filter bandwidth 800Hz, 16G (very sensitive), no self-test, 4-wire interface
  SPI_send(0x10, 0x00);                         // Output(X) = Measurement(X) - OFFSET(X) * 32;
  SPI_send(0x11, 0x00);                         // Output(Y) = Measurement(Y) - OFFSET(Y) * 32;
  SPI_send(0x12, 0x00);                         // Output(Z) = Measurement(Z) - OFFSET(Z) * 32;
  while (1)
  {

      //tmp = SPI_read(0x28);
      //printf("x : %x \n\r",tmp);
        tmp = SPI_read(0x29);
      printf("x : %x \n\r",tmp);
      Delay(1000);
  }
}
コード例 #5
0
ファイル: gameduino.c プロジェクト: thinj/bluevm
int gameduino_init(void) {
	int status;
	delay(250000);
	SPI_Init();

	int i = 0;
	while (i < 0x1000) {
		SPI_write(i++, 'T');
		SPI_write(i++, 'h');
		SPI_write(i++, 'i');
		SPI_write(i++, 'n');
		SPI_write(i++, 'J');
		SPI_write(i++, ' ');
	}

	if (SPI_read(IDENT) == 0x6d) {
		// Gameduino identification read successfully:
		status = 0;
	} else {
		// Gameduino identification could not be read; is it connected?
		status = -1;
	}

	return status;
}
コード例 #6
0
ファイル: spi_eepromApi.c プロジェクト: DMFX-1/Software
/* ------------------------------------------------------------------------ *
 *  SPI_EEPROM_read( src, dst, len )                                              *
 * ------------------------------------------------------------------------ */
Int16 SPI_EEPROM_read(CSL_SpiHandle spiHandle, Uint16 src, Uint32 dst, Uint32 length )
{
    Uint16     *dst_ptr;
    CSL_Status result;

	result = CSL_SOK;

	CSL_SPI_REGS->SPICMD1 = (Uint16)0x0000 | 0;

	/* Issue Write Enable command */
	commandBuf[0] = (Uint16)SPI_CMD_WREN;
	result |= SPI_write(spiHandle, commandBuf, 1);

	CSL_SPI_REGS->SPICMD1 = (Uint16)0x0000 | length + 3 - 1;

	/* Send Read command */
    commandBuf[0] = (Uint16)SPI_CMD_READ;
    commandBuf[1] = (Uint16)(src >> 8);
    commandBuf[2] = (Uint16)src;
    result |= SPI_write(spiHandle, commandBuf, 3);

	/* Read the requested EEPROM page */
	dst_ptr = (Uint16 *)dst;
	result |= SPI_read(spiHandle, dst_ptr, length);

	return (result);
}
コード例 #7
0
uns8 mrf24j40_long_addr_read(uns16 addr){

	uns8 result;
        #ifndef __PIC32MX__	
	        clear_pin(mrf24j40_cs_port, mrf24j40_cs_pin);

	        addr = addr & 0b0000001111111111; 	// <9:0> bits
	        addr = addr << 5;
	        set_bit(addr, 15);	// long addresss
	        spi_hw_transmit(addr >> 8);
	        spi_hw_transmit(addr & 0x00ff);
	        result = spi_hw_receive();	

	        set_pin(mrf24j40_cs_port, mrf24j40_cs_pin);
        #endif
        #ifdef __PIC32MX__
			ZIGCS=0;
			addr=((addr<<1)&0x7FE)|0x800;
			addr<<=4;
			SPI_write(addr>>8);
			SPI_write(addr);
			result=SPI_read();
			ZIGCS=1;        
        #endif
	return result;
}	
コード例 #8
0
void main (void)
{
	Init_Device();
	SPI0CFG |= 0x07;	//8 Bits pro Master-SPI-Transfer
	EA=1;
	LCD_init = 1;  // Bit zur Verzweigung in der ISR
	P5=0x0F;
	CONTROL_LCD = SMB_BUS_ERROR;

	LCD_write();

	P2_0 = 1;

	while(1)
	{
//		switch(P5)
//		{
//			case 0x07:
//			{
			
					SPI_read();
					show_display(1,ken5);
//					break;
//			}
//
//			default:
//			{
//					break;
//			}
//		}
	}
}
コード例 #9
0
/**************************************************************************************************
* \fn nRF_FlushTX()
* \brief Flush TX FIFO
*
**************************************************************************************************/
void nRF_FlushTX(SPI_Handle HandleSPI,GPIO_Handle HandleGPIO)
{
	nRF_setCSN(false,HandleGPIO);
	SPI_write(HandleSPI, FLUSH_TX);
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_1_Word); //wait
	HandleRF.Reg[R_STATUS] = SPI_read(HandleSPI);
	nRF_setCSN(true,HandleGPIO);
}
コード例 #10
0
ファイル: MCP_DRIVER.c プロジェクト: HappyTrigger/PingPong
/****************************************************************************
* \brief Read status of CAN controller
*
* \return status
****************************************************************************/
uint8_t mcp_read_status()
{
	volatile uint8_t retVal;
	mcp_turn_on();
	SPI_write(MCP_READ_STATUS);
	retVal=SPI_read();
	mcp_turn_off();
	return retVal;
}
コード例 #11
0
/**************************************************************************************************
* \fn nRF_ReadRXPayload()
* \brief Receive wireless paket from nRF24L01
*
**************************************************************************************************/
void nRF_ReadTXPayload(GPIO_Handle HandleGPIO,SPI_Handle HandleSPI)
{
		uint8_t i=0;
		nRF_setCSN(false,HandleGPIO); 																																																// CE pin LOW

		for(i=0; i<6; i++){SPI_write(HandleSPI, R_RX_PAYLOAD);}
		while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_1_Word); //wait??// Command + dummy data
		HandleRF.Reg[R_STATUS] = SPI_read(HandleSPI);																											// Read received payload
		while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_2_Words); //wait
		HandleRF.RXPayload[0] = SPI_read(HandleSPI);
		HandleRF.RXPayload[1] = SPI_read(HandleSPI);
		while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_3_Words); //wait
		HandleRF.RXPayload[2] = SPI_read(HandleSPI);
		HandleRF.RXPayload[3] = SPI_read(HandleSPI);

		nRF_setCSN(true,HandleGPIO);
																																																		// Count the received packets
}
コード例 #12
0
u8 enc28j60ReadOp(u8 op, u8 address)
{
u8 received_byte;

        CSACTIVE;
        // issue read command
        SPI_write(op | (address & ADDR_MASK));
        // read data
        received_byte=SPI_read();
        // do dummy read if needed (for mac and mii, see datasheet page 29)
        if(address & 0x80)
        {
            received_byte=SPI_read();
        }
        // release CS
        CSPASSIVE;
        return(received_byte);
}
コード例 #13
0
uint8_t MPU6500_readOneByte(uint8_t registerAddr)
{
    // 1st element: set 8th bit to indicate reading
    // 2nd element: 0x0 for the second clock frame to read data, because
    //              it takes 16 clocks to read data
    uint8_t tmp[2] = {registerAddr | 0x80, 0x0};
    SPI_read(IMU_SPI_SLAVE_ID, tmp, 2); // read from the register and store in tmp
    return tmp[1];
}
コード例 #14
0
ファイル: mcp2515.cpp プロジェクト: klasbo/byggern
uint8_t mcp2515_read_status(void){
    SPI_chipselect(1);

    SPI_write(MCP_READ_STATUS);
    uint8_t val = SPI_read();
    
    SPI_chipselect(0);

    return val;
}
コード例 #15
0
ファイル: mcp2515.cpp プロジェクト: klasbo/byggern
uint8_t mcp2515_read(uint8_t addr){
    SPI_chipselect(1);

    SPI_write(MCP_READ);
    SPI_write(addr);
    uint8_t val = SPI_read();

    SPI_chipselect(0);

    return val;
}
コード例 #16
0
color_t ST7735_getColor(u8 module, u8 x, u8 y)
{
    color_t color;
    u8 ch, cl;
    
    if ( x >= ST7735_WIDTH || y >= (ST7735_HEIGHT) ) return;

    ST7735_low(ST7735[module].pin.cs);             // Chip select
    
    ST7735_low(ST7735[module].pin.dc);             // COMMAND = 0
    SPI_write(module,ST7735_CASET);                // set column range (x0,x1)
    
    ST7735_high(ST7735[module].pin.dc);            // DATA = 1
    SPI_write(module,0x00);
    SPI_write(module,x);
    SPI_write(module,0x00);
    SPI_write(module,x);
    
    ST7735_low(ST7735[module].pin.dc);             // COMMAND = 0
    SPI_write(module,ST7735_RASET);                // set row range (y0,y1)
    
    ST7735_high(ST7735[module].pin.dc);            // DATA = 1
    SPI_write(module,0x00);
    SPI_write(module,y);
    SPI_write(module,0x00);
    SPI_write(module,y);
    
    ST7735_low(ST7735[module].pin.dc);             // COMMAND = 0
    SPI_write(module,ST7735_RAMRD);                // Read RAM
    
    ST7735_high(ST7735[module].pin.dc);            // DATA = 1
    ch = SPI_read(module);
    cl = SPI_read(module);
    color.c = make16(ch, cl);
    
    ST7735_high(ST7735[module].pin.cs);            // Chip deselected
    
    return color;
}
コード例 #17
0
//-------------------------------------------------------------------------------------------------------   
//  BYTE halSpiReadReg(BYTE addr)   
//   
//  DESCRIPTION:   
//      This function gets the value of a single specified CC1100 register.   
//   
//  ARGUMENTS:   
//      BYTE addr   
//          Address of the CC1100 register to be accessed.   
//   
//  RETURN VALUE:   
//      BYTE   
//          Value of the accessed CC1100 register.   
//-------------------------------------------------------------------------------------------------------   
BYTE halSpiReadReg(BYTE addr)    
{   
    unsigned char value;   
    DDB0=0;   
    while(DDB3);   
    DDB2=0;   
    addr|=READ_SINGLE;   
    SPI_write(addr);   
    value=SPI_read();   
    DDB0=1;   
    DDB2=0;   
    DDB2=0;   
    return value;   
}   
コード例 #18
0
uint16_t EEPROM25AA02_spiTransferByte(EEPROM25AA02_Handle handle, const uint16_t data){
	EEPROM25AA02_Obj *obj = (EEPROM25AA02_Obj *)handle;
	volatile uint16_t ReadByte;

	SPI_write(obj->spiHandle, (data & 0xFF) << 8);

	while(1){
	    if(SPI_getIntFlagStatus(obj->spiHandle)==SPI_IntFlagStatus_Completed){
			ReadByte = SPI_read(obj->spiHandle);
			break;
		}
	}
	return ReadByte;
}
コード例 #19
0
//-------------------------------------------------------------------------------------------------------   
//  BYTE halSpiReadStatus(BYTE addr)   
//   
//  DESCRIPTION:   
//      This function reads a CC1100 status register.   
//   
//  ARGUMENTS:   
//      BYTE addr   
//          Address of the CC1100 status register to be accessed.   
//   
//  RETURN VALUE:   
//      BYTE   
//          Value of the accessed CC1100 status register.   
//-------------------------------------------------------------------------------------------------------   
BYTE halSpiReadStatus(BYTE addr)    
{   
    unsigned char value;   
    DDB0=0;   
    while(DDB3);   
    DDB2=0;   
    addr|=READ_BURST;   
    SPI_write(addr);   
    value=SPI_read();   
    DDB0=1;   
    DDB2=0;   
    DDB2=0;   
    return value;   
}// halSpiReadStatus   
コード例 #20
0
ファイル: MCP_DRIVER.c プロジェクト: HappyTrigger/PingPong
/****************************************************************************
* \brief Read data from CAN controller
*
* \param in address from which shall be read
* \return data
****************************************************************************/
uint8_t mcp_read(uint8_t address)
{
	volatile uint8_t retVal;
	
	mcp_turn_on();
	
	SPI_write(MCP_READ);
	SPI_write(address);
	
	retVal = SPI_read();
	
	mcp_turn_off();
	
	return retVal;
}
コード例 #21
0
//-------------------------------------------------------------------------------------------------------   
//  void halSpiReadBurstReg(BYTE addr, BYTE *buffer, BYTE count)   
//   
//  DESCRIPTION:   
//      This function reads multiple CC1100 register, using SPI burst access.   
//   
//  ARGUMENTS:   
//      BYTE addr   
//          Address of the first CC1100 register to be accessed.   
//      BYTE *buffer   
//          Pointer to a byte array which stores the values read from a   
//          corresponding range of CC1100 registers.   
//      BYTE count   
//          Number of bytes to be written to the subsequent CC1100 registers.   
//-------------------------------------------------------------------------------------------------------   
void halSpiReadBurstReg(BYTE addr, BYTE *buffer, BYTE count)    
{   
    unsigned char j,value;   
    DDB0=0;   
    while(DDB3);   
    DDB2=0;   
    addr|=READ_BURST;   
    SPI_write(addr);   
    for(j=0;j<count;j++)    
    {   
      value=SPI_read();   
      buffer[j]=value;   
    }   
    DDB0=1;   
}// halSpiReadBurstReg   
コード例 #22
0
void enc28j60ReadBuffer(u16 len, u8* buffer)
{
u8 received_byte;
        CSACTIVE;
        // issue read command
        SPI_write( ENC28J60_READ_BUF_MEM );
        while(len)
        {
                len--;
                // read data
                received_byte=SPI_read();
                *buffer = received_byte;
                buffer++;
        }
        *buffer='\0';
        CSPASSIVE;
}
コード例 #23
0
uns8 mrf24j40_short_addr_read(uns8 addr)
{
        #ifndef __PIC32MX__
	        clear_pin(mrf24j40_cs_port, mrf24j40_cs_pin);
	        addr = addr & 0b00111111;	// <5:0> bits
	        addr = addr << 1;	// LSB = 0, means read
	        spi_hw_transmit(addr);
	        uns8 result = spi_hw_receive();
	        set_pin(mrf24j40_cs_port, mrf24j40_cs_pin);
        #endif
        #ifdef __PIC32MX__
	        addr = (addr << 1) & 0x7E;
	        ZIGCS=0; // CS must be held low while communicationg with MRF24J40
	        SPI_write(addr);
	        u8 result = SPI_read();
	        ZIGCS=1; // end of communication
        #endif	                	        
	return result;
}	
コード例 #24
0
void updateAccel()
{
	accel.x = SPI_read(ACCEL_OUT_XL);
	accel.x |= (SPI_read(ACCEL_OUT_XH) << 8);
	
	accel.y = SPI_read(ACCEL_OUT_YL);
	accel.y |= (SPI_read(ACCEL_OUT_YH) << 8);
	
	accel.z = SPI_read(ACCEL_OUT_ZL);
	accel.z |= (SPI_read(ACCEL_OUT_ZH) << 8);

//	DBG1("Ax %d", accel.x);
//	DBG1("Ay %d", accel.y);
//	DBG1("Az %d", accel.z);
}
コード例 #25
0
ファイル: pyspidev.c プロジェクト: graycatlabs/serbus
static PyObject *SPIDev_read(SPIDev *self, PyObject *args, PyObject *kwds) {
  uint8_t cs;
  uint32_t n_bytes, n_words, i, word;
  PyObject *data, *word_obj;
  void *rxbuf; 
  if(!PyArg_ParseTuple(args, "bI", &cs, &n_words)) {
    return NULL;
  }

  if (SPIDev_activateCS(self, cs) < 0) return NULL;

  n_bytes = (uint32_t) (((float) (self->bits_per_word * n_words)) / 8.0 + 0.5);
  rxbuf = malloc(n_bytes);

  SPI_read(self->spidev_fd[cs], rxbuf, n_words);

  data = PyList_New(0);
  for (i=0; i<n_words; i++) {
    switch(self->bytes_per_word) {
    case 1:
      word = ((uint8_t*)rxbuf)[i];
      break;
    case 2:
      word = ((uint16_t*)rxbuf)[i];
      break;
    case 4:
      word = ((uint32_t*)rxbuf)[i];
      break;
    default:
      word = 0;
      break;
    }
    word_obj = PyInt_FromLong(word);
    PyList_Append(data, word_obj);
    Py_DECREF(word_obj);
  }
  free(rxbuf);
  return data;
}
コード例 #26
0
/** ===========================================================================
 *   @n@b SPI_dataTransaction
 *
 *   @b Description
 *   @n This function read or Write data to specified device.
 *
 *   @b Arguments
 *   @verbatim
            spiHandle         Handle to the spi
            writeBuff         Pointer to the write buffer.
            buffLen           Maximum read buffer size.
            readOrWrite          Read or write command.
     @endverbatim
 *
 *   <b> Return Value </b>  CSL_Status
 *   @li                    CSL_SOK             - transation success
 *   @li                    CSL_ESYS_BADHANDLE  - Invalid handle
 *
 *
 *   <b> Pre Condition </b>
 *       This function can after SPI_open function.
 *
 *   <b> Post Condition </b>
 *   @n   SPI_deInit can be call after this function call.
 *
 *   @b Modifies
 *   @n
 *
 *   @b Example
 *   @verbatim
            CSL_SpiHandle   hSpi;
            Uint16          writeBuff[size];
            Uint16          buffLen;
            SPI_Command     readOrWrite
            CSL_status   status;
            ...
            ...
            status = SPI_dataTransaction(hSpi, &rwBuffer,
                                           rwBufLen, readOrWrite);
     @endverbatim
 *  ===========================================================================
 */
CSL_Status SPI_dataTransaction(CSL_SpiHandle hSpi,
                                Uint16          *rwBuffer,
                                Uint16          rwBufLen,
                                SPI_Command     readOrWrite)
{
    CSL_Status    status;

    if(NULL == hSpi)
    {
        return (CSL_ESYS_BADHANDLE);
    }

    if((NULL == rwBuffer) || (0 == rwBufLen))
    {
        return (CSL_ESYS_INVPARAMS);
    }

    if(FALSE == hSpi->configured)
    {
        return (CSL_ESYS_INVPARAMS);
    }

    /* Read data from registers                                */
    if(SPI_READ_CMD == readOrWrite)
    {
        status = SPI_read(hSpi, rwBuffer, rwBufLen);
    }
    /* Write data to registers                                */
    else if(SPI_WRITE_CMD == readOrWrite)
    {
        status = SPI_write(hSpi, rwBuffer, rwBufLen);
    }
    else
    {
        status = CSL_ESYS_INVPARAMS;
    }

    return (status);
}
コード例 #27
0
void nRF_ReadRXADDR(GPIO_Handle HandleGPIO,SPI_Handle HandleSPI, uint16_t pipe)
{
	uint8_t i=0;

	nRF_setCSN(false,HandleGPIO);

	for(i=0; i<6; i++){SPI_write(HandleSPI, pipe); }
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_1_Word); //wait??
	HandleRF.Reg[R_STATUS] = SPI_read(HandleSPI);
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_2_Words); //wait??
	HandleRF.RXADDR[0] = SPI_read(HandleSPI);
	HandleRF.RXADDR[1] = SPI_read(HandleSPI);
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_3_Words); //wait??
	HandleRF.RXADDR[2] = SPI_read(HandleSPI);
	HandleRF.RXADDR[3] = SPI_read(HandleSPI);
	HandleRF.RXADDR[4] = SPI_read(HandleSPI);

	nRF_setCSN(true,HandleGPIO);
}
コード例 #28
0
void nRF_WriteRXADDR(SPI_Handle HandleSPI,GPIO_Handle HandleGPIO, uint8_t uiID, uint16_t pipe)
{
	unsigned int i=0;


	nRF_setCSN(false,HandleGPIO);

	SPI_write(HandleSPI, W_REGISTER | pipe); //register adress
	for(i=0; i<4; i++){SPI_write(HandleSPI, 0xE700);}SPI_write(HandleSPI, 0xE000 | (uiID<<8));
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_1_Word); //wait
	HandleRF.Reg[R_STATUS] = SPI_read(HandleSPI);
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_2_Words); //wait
	HandleRF.Reg[R_JUNK]= SPI_read(HandleSPI);
	HandleRF.Reg[R_JUNK] = SPI_read(HandleSPI);
	while(SPI_getRxFifoStatus(HandleSPI) < SPI_FifoStatus_3_Words); //wait
	HandleRF.Reg[R_JUNK] = SPI_read(HandleSPI);
	HandleRF.Reg[R_JUNK] = SPI_read(HandleSPI);
	HandleRF.Reg[R_JUNK] = SPI_read(HandleSPI);

	nRF_setCSN(true,HandleGPIO);
}
コード例 #29
0
void bbio::getEncoders(double *v) {
    SPI_read();
    for (int i=0; i<NUM_ADC_PORT; i++) {
        v[i] = SPI_sensor_value[0][i];
    }
}
コード例 #30
0
void bbio::getEncoder(int j, double *v){
    SPI_read();
    if (j < NUM_ADC_PORT) {
        (*v) = SPI_sensor_value[0][j];
    }
}