Esempio n. 1
0
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);
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
//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);
}