#include #include #include #include #include #include //#include #include #include #include #include #include "defines.h" #include "lcd.h" #include "spi.h" #include "rf24.h" int main (void); void setup (void); void loop (void); void lcdprint( char* ptr); void debughex (uint8_t* ptr,uint8_t len); int main(void) { setup(); while (1) loop(); } void setup(void) { #if defined(USBCON) USBCON=0; #endif lcd_init(20,4); lcd_backlight(0); lcd_clear(); lcd_home(); lcd_display(); lcdprint("Pyro RF ! "); _delay_ms(200); spi_init_master(); _delay_ms(200); rf24_setup(); // rf24_init(); //char st = rf24_read_reg(STATUS); rf24_update_fifo_status(); debughex(&rf24_status,1); while(1); #if defined(TIMSK1) // setup Timer1 TCCR1A = 0; TCNT1=0; OCR1A = 10000; TIMSK1 = _BV(OCIE1A); TCCR1B = _BV(WGM12)|_BV(CS11); #elif defined(__AVR_ATmega2560__) // setup Timer1 TCCR1A = 0; TCNT1=0; OCR1A = 10000; TIMSK = _BV(OCIE1A); TCCR1B = _BV(WGM12)|_BV(CS11); #endif sei(); } volatile int i=0,j=0; volatile int u=0; void loop(void) { if(!u){ u=20; char buf[15]; lcd_setCursor(0,1); snprintf(buf,15,"%d %d ",i,j++); lcdprint(buf); } set_sleep_mode(SLEEP_MODE_IDLE); sleep_mode(); } ISR(TIMER1_COMPA_vect){ i+=5; if(u)u--; } void lcdprint( char* ptr) { while (*ptr) lcd_write(*ptr++); } void debughex (uint8_t* ptr,uint8_t len) { while (len--) { uint8_t c = *(ptr++); uint8_t ch= c>>4; c &= 0x0F; lcd_write(ch>9?ch+'A'-10:ch+'0'); lcd_write(c>9?c+'A'-10:c+'0'); } }