コード例 #1
0
ファイル: demo_rx.c プロジェクト: Sel2016/microchip
void main(void)
{
	uint16_t i;
	
	serialInit(9600);
	vw_setup(600);

	puts("PIC Receiver Demo\n");

	vw_rx_start();

	while(1)
	{
		if (vw_have_message())
		{
			uint8_t len = VW_MAX_MESSAGE_LEN;

			if (vw_recv(text, &len))
			{
				for (i = 0; i < len; i++)
					putchar(text[i]);

				putchar('\n');
			}
		}
	}
	
}
コード例 #2
0
ファイル: rf-node.c プロジェクト: mattcallow/sensornet
int main(void)
{
	mcusr_save = MCUSR;
	MCUSR = 0;
	wdt_disable();
	if (!(mcusr_save & WDRF))
	{
		seqnum = 0;
	}
	
#ifdef SN_TEMP_DDR
	// configure pin for analog
	SN_TEMP_DDR &= ~SN_TEMP_MASK; // set as input
	SN_TEMP_PORT &= ~SN_TEMP_MASK;	// pull-ups off
	DIDR0 |= SN_TEMP_MASK; // disable digital input buffer
#endif
	SN_LED_DDR |= SN_LED_MASK; // set as output
	SN_LED_PORT &= ~SN_LED_MASK;
	vw_setup();
#ifdef SN_RX_CAPABLE
	vw_rx_start();
#endif
	for (int i=0;i<3;i++)
	{
		send_status(SN_ADDRESS_BROADCAST);
		vw_wait_tx();
	}
	for (;;) {
#ifdef SN_RX_CAPABLE
		if (vw_have_message()) {
			uint8_t len = sizeof(msg);
			if (vw_get_message((uint8_t *)&msg, &len)) {
				if (msg.header.destination == SN_ADDRESS_ME|| msg.header.destination == SN_ADDRESS_BROADCAST) {
					process_msg();
				} else {
					// TODO - consider routing here
				}
			} else {
				// bad message
			}
		}
#endif
#ifdef SN_TX_CAPABLE
		// Process any outgoing stuff
		if (millis() - last_status > STATUS_PERIOD) {
			send_status(SN_ADDRESS_BROADCAST);
		}
		if (millis() - last_sensor_data > SENSOR_PERIOD) {
			send_sensor_data(SN_ADDRESS_BROADCAST);
		}
#endif // SN_TX_CAPABLE
#ifdef USE_MILLIS
		//set_sleep_mode(SLEEP_MODE_IDLE);
		//sleep_enable();
		//sleep_cpu();
		//sleep_disable();
#endif
	}
}
コード例 #3
0
////////////////////////////////////////
//
//	Return TRUE when the radio has a packet for us
//
byte rx_pkt_ready(void) {
	return vw_have_message();
}