uczynilem program w c, ktory mial by mierzyc szerokosc impulsu podawanego na T1; calosc dziala sobie na przerwaniu INT0 (polaczone piny INT0 i T1) czyli niejako wartosc licznika T1 to ilosc zmierzonych impulsow zegarowych 51; ustawienia rejestrow (w kolejnosci) TMOD=0x91; (pracuje tez przerwanie od T0 - co 500ms wyswietlany jest wynik) TR0=1; TR1=1; IT0=1; (przerwanie na zboczu opadajacym, czyli po zakonczeniu zliczania impulsow zegarowych) IE=0x83;
Przerwanie startuje, ale zawartosc T1 jest co najmniej dziwna; przy szerokosci impulsu ok 6ms, zawartosc T1 ok 40000 (taktowanie 8MHz), calkowicie stabilna, choc powinna przynajnioej troche plywa, i nie zmniejsza sie przy zminiejszaniu szerokosci impulsow, natomiast gdy mocno zwieksze ich szerokosc zawartosc T1 zmniejsza swoja wartosc ale o dziwne skoki i wynosi np - 20000, 8000, 3000; ktos ma pomysl gdzie popelniam blad? w przerwaniu od T1 przepisuje tylko wartosc TH1+TL1 do unsigned integer i zetuje licznik, takze nie ma mozliwosci by nie wyrabialo sie zcasowo...
pozdrawiam Artur