Beispiel #1
0
int main(void)
{
	//Initialisieren der Komponenten
	led_init();		//LED Initialisieren
	td_init();		//Zeitbasis initialisieren
	script_init();	//Sriptengine initialisieren
	
	//Funkmodul initialisieren
	rf12_init();					
	rf12_setfreq(RF12FREQ(433.25));	// 433,92MHz
	rf12_setbandwidth(4, 1, 4);		// 200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm 
	rf12_setbaud(19200);			// 19200 baud
	rf12_setpower(0, 6);			// 1mW Ausgangangsleistung, 120kHz Frequenzshift

	sei();		//Interrupts aktivieren

	uint8_t buf_temp[10];
	
	//Mainloop
	while(23)
	{
		//Zustandsmaschinen aktualisieren
		script_tick();
		rgb_fade_tick();

		//Prüfen ob ein neues Datenframe empfangen wurde.
		if (rf12_getStatus() == rf12_data_status_ready)
		{
			rf12_getData(buf_temp); //Daten abholen
			rf_data_reset();		//Empfangspuffer zurücksetzen
			command(buf_temp);		//Empfangenes Kommando ausführen
		}
	}
}	
Beispiel #2
0
int main(void)
{

	// engine ctrl led and reset indicator
	DDRC  |=  (1 << DDC1);
	PORTC |=  (1 << PC1);


	// inicator for: received package is ok
	DDRC  |=  (1 << PC4);
	PORTC &= ~(1 << PC4);

	/* wait 400ms to give the rf12's POR
	 * (Power-On Reset) time to 
	 * initialize the registers etc..
	 * (initializing wouldnt work without)
	 *
	 * .. this is NOT documented in the datasheet :\
	 *
	 * notice:
	 *  the producer did the same in the example code 
	 *  but let it uncommented
	 *
	 */
	_delay_ms(400);

	rfxx_init();
	// init rf12 as receiver
	rf12_init(0);

	init_sensor();
	init_control();

	// enable external interrupt 2
	GICR  = (1 << INT2);
	
	// Interrupt PIN is Input
	RFXX_nIRQ_PORT &= ~(1 << RFXX_nIRQ);
	// enable interrupts (global)
	sei();

	// enable receiver's FIFO
	rfxx_wrt_cmd(0xCA83);

	// init finished 
	PORTC &=  ~(1 << PC1);

	while (1);
}
Beispiel #3
0
void send() {
    char buf[16];// = "g123456789012345678901234567890\0\0\0";
    buf[0] = 'g';
    memcpy(buf + 1, &x, 2);
    memcpy(buf + 3, &y, 2);
    memcpy(buf + 5, &z, 2);
    buf[7] = 0;
    memcpy(buf + 8, &x, 2);
    memcpy(buf + 10, &y, 2);
    memcpy(buf + 12, &z, 2);
    buf[14] = 0;

    rf12_init();
    rf12_setall(RF12FREQ868(868.3), 4, 1, 4, 666, 0, 6);

    rf12_txdata(buf, 15);

    rf12_trans(0x8201);
    rf12_trans(0x0);
}
Beispiel #4
0
int main(void)
{
	DDRD=0;
	sei();
	UART_Init();
	rf12_init();					// ein paar Register setzen (z.B. CLK auf 10MHz)
	UART_Tx_Str("Init\n", 5);
	rf12_setfreq(RF12FREQ(433.92));			// Sende/Empfangsfrequenz auf 433,92MHz einstellen
	rf12_setbandwidth(RxBW200, LNA_6, RSSI_79);	// 200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm 
	rf12_setbaud(19200);				// 19200 baud
	rf12_setpower(PWRdB_0, TxBW120);		// 1mW Ausgangangsleistung, 120kHz Frequenzshift


	while(1)
	{
		unsigned char i;
		UART_Tx_Str("Pkg\n", 4);
		send();
		for (i=0; i<100; i++)
			_delay_ms(10);
	}
}
Beispiel #5
0
int main(void)
{

	sei();

	UART_Init();
	rf12_init();				// ein paar Register setzen (z.B. CLK auf 10MHz)
	UART_Tx_Str("Init\n", 5);
	rf12_setfreq(RF12FREQ(433.92));		// Sende/Empfangsfrequenz auf 433,92MHz einstellen
	rf12_setbandwidth(4, 1, 4);		// 200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm 
	rf12_setbaud(19200);			// 19200 baud
	rf12_setpower(0, 6);			// 1mW Ausgangangsleistung, 120kHz Frequenzshift

	for (;;)
	{
		unsigned char ret;
		unsigned char test[50];
/* none blocking sample */	
		unsigned char test2[50];

		UART_Tx_Str(test, sprintf(test, "Start val: %u\n", rf12_rxstart()));

		ret = 255;				//not completed yet
		while(ret == 255)
		{
			ret = rf12_rxfinish(test2);	//try if transfer completed
		}
		UART_Tx_Str(test, sprintf(test, "ret: %u\n", ret));
		if(ret != 0 && ret != 254)				//no CRC error && no old str
			UART_Tx_Str(test2, ret);

/*blocking sample */	
/*		ret = rf12_rxdata(test);
		if(ret)
			UART_Tx_Str(test,ret);
		else
			UART_Tx_Str("CRC Err\n", 8);
*/	}
}