int main(void) { setup(); mirf_init(); _delay_ms(50); mirf_config(); while(1) { RX_POWERUP; mirf_CSN_lo; spi_transfer(FLUSH_RX); mirf_CSN_hi; mirf_CE_hi; // Start listening // Wait for incoming requests while (!(mirf_status() & (1<<RX_DR))) { _delay_us(250); } mirf_CE_lo; // Stop listening // Read the data received mirf_receive_data(); // Check if the data_in matches "pir1c" if (memcmp(data_in, "pir1c", 5) == 0) { PORTA |= (1<<PA3); // Turn on LED/Buzzer // Start/Restart the 8 second count TCNT1 = 0; TCCR1B = ((1<<CS11) | (1<<CS10)); } } }
int main(void) { setup(); mirf_init(); _delay_ms(50); mirf_config(); while(1) { _delay_ms(1000); // Let server know the PIR was triggered mirf_transmit_data(); _delay_ms(500); } }
int main(void) { setup_charlie_struct(); setup_hw(); //for(uint16_t a=0;a<=buffer_length;a++) buffer[a]=0; //clear buffer // Initialize AVR for use with mirf mirf_init(); // Wait for mirf to come up _delay_ms(50); // Activate interrupts sei(); // Configure mirf mirf_config(); // Test communication int i = 0; sei(); //global interrupt enable roll_charlie(); while(1) { /* for(uint8_t i=0;i<10;i++) { mirf_send(&i,1); _delay_ms(1000); } */ uint8_t status = mirf_data_ready(); while (!status); LED_PATTERN=status; //mirf_get_data(*buffer); //set_charlie(buffer[i]); //i++; } }
int main(void) { uint8_t buf[10]; DDRD |= ((1 << PD5) | (1 << PD6));//PD5 и PD6 на выход serialInit(SPEED9600); mirf_init(); _delay_ms(50); sei(); mirf_config(); while(1) { while(!mirf_data_ready()) ; mirf_get_data(buf); if(buf[0] == 1) { PORTD |= (1 << PD5); } else { PORTD &= ~(1 << PD5); } if(buf[1] == 1) { PORTD |= (1 << PD6); } else { PORTD &= ~(1 << PD6); } } return 0; }