drodzy panowie, może panie
Sprawa jest taka, mam układ nad którym już od kilku tygodni ślęczę, coś w rodzaju komputera pokładowego do pojazdu jednoścladowego hehe. Generalnie wszystko jest ok z wyjątkiem...
Zastopowałem się przy liczniku kilometrów.
przerwanie INT0 zlicza ilosc obrotów koła (jedna linia programu)
przerwanie INT1 jest przerwanie zegara ktore co 1 sekundę dokonuje obliczen przejechanej drogi oraz szybkosci pojazdu (4 linie programu i proste operacje)
przerwanie timera obsluguje klawiature.
Glowny progra obrazuje predkosc i przebieg na LCD i w zasadzie wszystko jest OK
Problem lezy w tym ze co sekunde zapisuje aktualny przebieg w pamieci na I2C dla pozniejszego otworzenia jego stanu przy uruchomieniu licznika po wlaczniu zasilania.
W ogole zauwazylem ze w momencie gdy dochodzi do obslugi magistarli I2C (a zaznaczam dzieje sie to w glownym programie) wskazania szybkosciomierza głupieją) z czego wnioskuje że zaczynają one kolidowac z przerwaniem INT0.
Poki co nie mam na to pomysłu, no chyba ze daruje sobie magistrale I2C i bede zapisywal biezacy przebieg w jakiejs pamieci o dostepie rownolegly, ale tutaj z kolei moze mi zabraknąc portów procesora.
Program jest w C.
Sprawa jest taka, mam układ nad którym już od kilku tygodni ślęczę, coś w rodzaju komputera pokładowego do pojazdu jednoścladowego hehe. Generalnie wszystko jest ok z wyjątkiem...
Zastopowałem się przy liczniku kilometrów.
przerwanie INT0 zlicza ilosc obrotów koła (jedna linia programu)
przerwanie INT1 jest przerwanie zegara ktore co 1 sekundę dokonuje obliczen przejechanej drogi oraz szybkosci pojazdu (4 linie programu i proste operacje)
przerwanie timera obsluguje klawiature.
Glowny progra obrazuje predkosc i przebieg na LCD i w zasadzie wszystko jest OK
Problem lezy w tym ze co sekunde zapisuje aktualny przebieg w pamieci na I2C dla pozniejszego otworzenia jego stanu przy uruchomieniu licznika po wlaczniu zasilania.
W ogole zauwazylem ze w momencie gdy dochodzi do obslugi magistarli I2C (a zaznaczam dzieje sie to w glownym programie) wskazania szybkosciomierza głupieją) z czego wnioskuje że zaczynają one kolidowac z przerwaniem INT0.
Poki co nie mam na to pomysłu, no chyba ze daruje sobie magistrale I2C i bede zapisywal biezacy przebieg w jakiejs pamieci o dostepie rownolegly, ale tutaj z kolei moze mi zabraknąc portów procesora.
Program jest w C.