void ds18b20Init(uint32_t portNumber, uint32_t bitPosition, volatile uint32_t *ioconReg) { portNum = portNumber; bitPos = bitPosition; timer16Init(1, TIMER16_DEFAULTINTERVAL); timer16Enable(1); gpioSetPullup(ioconReg, gpioPullupMode_Inactive); }
void chb_drvr_init() { // ToDo: Make sure gpioInit has been called // ToDo: Make sure CT32B0 has been initialised and enabled // config SPI for at86rf230 access chb_spi_init(); // Setup 16-bit timer 0 (used for us delays) timer16Init(0, 0xFFFF); timer16Enable(0); // Set sleep and reset as output gpioSetDir(CHB_SLPTRPORT, CHB_SLPTRPIN, 1); gpioSetDir(CHB_RSTPORT, CHB_RSTPIN, 1); // configure IOs gpioSetValue(CHB_SLPTRPORT, CHB_SLPTRPIN, 1); // Set sleep high gpioSetValue(CHB_RSTPORT, CHB_RSTPIN, 1); // Set reset high // Set internal resistors gpioSetPullup (&CHB_SLPTRPIN_IOCONREG, gpioPullupMode_Inactive); gpioSetPullup (&CHB_RSTPIN_IOCONREG, gpioPullupMode_Inactive); // config radio chb_radio_init(); }
//Initializes the SPI module of the AVR to work with the NORDIC void init_nordic_spi() { //Configure IO Directions // config CSN pin IOCON_JTAG_TDO_PIO1_1 &= ~IOCON_JTAG_TDO_PIO1_1_FUNC_MASK; IOCON_JTAG_TDO_PIO1_1 |= IOCON_JTAG_TDO_PIO1_1_FUNC_GPIO; gpioSetDir(1, NORDIC_CSN, gpioDirection_Output); // config CE pin IOCON_JTAG_nTRST_PIO1_2 &= ~IOCON_JTAG_nTRST_PIO1_2_FUNC_MASK; IOCON_JTAG_nTRST_PIO1_2 |= IOCON_JTAG_nTRST_PIO1_2_FUNC_GPIO; gpioSetDir(1, NORDIC_CE, gpioDirection_Output); // config IRQ pin - needs to be input actually. IOCON_JTAG_TMS_PIO1_0 &= ~IOCON_JTAG_TMS_PIO1_0_FUNC_MASK; IOCON_JTAG_TMS_PIO1_0 |= IOCON_JTAG_TMS_PIO1_0_FUNC_GPIO; //Edited to be input gpioSetDir(1, NORDIC_IRQ, gpioDirection_Input); //Drive nCS HIGH NORDIC_CSN_HIGH(); //Configure UART1 in SPI MODE //CPOL and CPHA both at 0? //SCK should normally be low. And the clock samples data in the middle of data bits, sspInit (0, sspClockPolarity_Low, sspClockPhase_RisingEdge); timer16Init(0, TIMER16_DEFAULTINTERVAL); }