void nrf24l01_RX_config_slave(void)
{
	ioport_set_pin_low(nrf24l01S_CE);
	
	SPI_MasterSSHigh(&PORTC, PIN4_bm);
	delay_us(20);
	SPI_MasterSSLow(&PORTC, PIN4_bm);
	delay_us(20);
	
	rf_writebuf_slave(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);
	rf_writereg_slave(WRITE_REG + EN_AA, 0x01);//enable autoactive 0x01
	rf_writereg_slave(WRITE_REG + EN_RXADDR, 0x01);
	rf_writereg_slave(WRITE_REG + RF_CH, 40);
	rf_writereg_slave(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);
	rf_writereg_slave(WRITE_REG + RF_SETUP, 0x09);
	rf_writereg_slave(WRITE_REG + CONFIG, 0x0f);
	
	//SPI_MasterSSLow(ssPort, PIN4_bm);
	ioport_set_pin_high(nrf24l01S_CE);
	delay_us(150);//at least 130us
	
	PORT_ConfigurePins( &PORTC,
	0x01,	//set pin PK0 as input 'IRQ';
	false,
	false,
	PORT_OPC_TOTEM_gc,
	PORT_ISC_FALLING_gc );//set falling edge as trigger;
	
	PORT_SetPinsAsInput( &PORTC, 0x01 );
	
	/* Configure Interrupt0 to have medium interrupt level, triggered by pin 0. */
	PORT_ConfigureInterrupt0( &PORTC, PORT_INT0LVL_MED_gc, 0x01 );		
}
void initialize_hall_sensor ( void )
{
	// Set pin2 to be input
	HALL_SENSOR_PORT.DIRCLR = HALL_SENSOR_PIN;
	
	// Setup asynchronous interrupt
	PORT_ConfigurePins( &HALL_SENSOR_PORT,
						HALL_SENSOR_PIN,
						false,
						false,
						PORT_OPC_PULLUP_gc,
						PORT_ISC_RISING_gc );
						
	PORT_ConfigureInterrupt0( &HALL_SENSOR_PORT, PORT_INT0LVL_MED_gc, HALL_SENSOR_PIN );		
}
//__________________________________________________________________________________________________
void anibike_dl_slave_initialize ( void )
{	
	// map PORT C to virtual port 1
	PORT_MapVirtualPort1( PORTCFG_VP1MAP_PORTC_gc );
			
	// set clk out and data in
	DATALINK_PORT.DIRCLR = DATALINK_DATA_PIN|DATALINK_CLK_PIN|DATALINK_CS_PIN;
		
	PORT_ConfigurePins( &DATALINK_PORT,
						DATALINK_CLK_PIN|DATALINK_DATA_PIN,
						false,
						false,
						PORT_OPC_TOTEM_gc,
						PORT_ISC_BOTHEDGES_gc );
						
	PORT_ConfigurePins( &DATALINK_PORT,
						DATALINK_CS_PIN,
						false,
						false,
						PORT_OPC_PULLUP_gc,
						PORT_ISC_FALLING_gc );
						//PORT_ISC_BOTHEDGES_gc );
	
		
	/* Initialize SPI slave on port C. */
	SPI_SlaveInit(&spiSlaveC,
	              &DATALINK_SPI,
	              &DATALINK_PORT,
	              false,
	              SPI_MODE_0_gc,
	              SPI_INTLVL_MED_gc);
				  
	PORT_ConfigureInterrupt0( &DATALINK_PORT, PORT_INT0LVL_HI_gc, DATALINK_CS_PIN );		

	PMIC.CTRL |= PMIC_LOLVLEN_bm|PMIC_MEDLVLEN_bm|PMIC_HILVLEN_bm;	
	
	DL_SLAVE_CIRC_BUFFER_START = 0;
	DL_SLAVE_CIRC_BUFFER_END = 0;	
	
	
	g_receive_buffer = g_buffer_II;
	g_proj_buffer = g_buffer_I;
	g_current_double_buffer = 0;
	set_projection_buffer ( g_proj_buffer );
}
Exemple #4
0
void VBusMon_init(void)
{
	PORT_ConfigureInterrupt0( &PORTD, PORT_INT0LVL_LO_gc, 0x20 );
	
}