Gast
#2782786
moin moin, ich versuche gps daten über einen attiny85 auszulesen. Dazu verwende ich einen Timer Interrupt, der alle 208 us aufgerufen wird (Test mit Oszi). Versuche über folgende Quellcode mir anzeigen zu lassen, wann ein neuer GPS Satz angekommen ist (Laut Navi-Testsoftware werden 5 versch. Sätze pro Sekunde empfangen. Also sollte meine LED 5 mal pro sek. blinken. Sie blinkt aber ziemlich willkürlich (manchmal 2 mal pro sek. manchmal gar nicht). Hoffe, dass mir jmd. meine Fehler erklären kann. Gruß Sascha ISR(TIMER0_COMPA_vect) { cli(); TIFR = (1<<OCF0A); if(laenge == 0) USIBR = 0; if(laenge < 8) { laenge++; USIBR = (USIBR << 1); if(PINB & (1<< PB0)) USIBR |= 0x01 ; else USIBR &= ~0x01; } else { gps = USIBR; laenge = 0; if(gps== '$') PINB |= (1 << PB3); USIBR = 0; } sei(); }