//Sends one byte command uint8_t spi_send_cmd(uint8_t cmd) { uint8_t status; SPI_ENABLE(); //Select chip status = SPI_TRANSFER(cmd); SPI_DISABLE(); //Deselect chip return(status); }
//Sends one byte command uint8_t spi_send_cmd(uint8_t cmd) { uint8_t status; SPI_ENABLE(); //Select chip status = spi_rw_byte(cmd); SPI_DISABLE(); //Deselect chip return(status); }
void __cc2420_arch_init(void) { SFIOR |= BV(PUD); /* Beware, disable all pull-ups. */ spi_init(); DDRB |= BV(RESET_N) | BV(VREG_EN) | BV(CSN); PORTB |= BV(RESET_N) | BV(CSN); SPI_DISABLE(); /* Unselect radio. */ }
/** \brief This function reads data from one of the radio transceiver's registers. * * \param address Register address to read from. See datasheet for register * map. * * \see Look at the at86rf230_registermap.h file for register address definitions. * * \returns The actual value of the read register. */ inline uint8_t spi_register_read(uint8_t address) { uint8_t register_value; //SPI_READ_REG(address, register_value); SPI_ENABLE(); SPI_WRITE(address); register_value = (uint8_t)SPI_TRANSFER(0); SPI_DISABLE(); return register_value; }
//write buffer uint8_t spi_write_buf(uint8_t cmd, uint8_t* const data, uint16_t size) { uint8_t status =0; uint8_t* pdata = data; uint8_t i = 0; SPI_ENABLE(); //Select chip status = spi_rw_byte(cmd); //write tx payload for(i = 0 ; i < size; i++) { printf("0x%x,",*pdata); spi_rw_byte(*pdata++); } SPI_DISABLE(); //Deselect chip return status; }