Witam,
Robię zegar, czy istnieje jakakolwiek metoda dla 8051 aby odmierzyć dokładnie 1sekundę, wszytko było by ok gdyby przerwanie było generowane co konkretną ilość taktów niestety tak nigdy nie da się zrobić ponieważ poza timerem trzeba zrobić jakąś nieskończoną pętlę a wszystkie skoki w 8051 trwają 24 cykle zegar za czym idzie to że czasem przerwanie timera trafia na początek cyklu skoku za czym idzie jedno cyklowe opóźnienie wykonania przerwania.
np. pętla
emptyloop:
sjmp emptyloop
wykonuje się co 24 cykle a przerwanie timera czasem jest wywoływane w środku wykonywania sjmp a czasem na początku i musi przez 12 cykli dokonczyć sjmp-a zanim skoczy do timera
czy istnieje jakiś sposób żeby to ominąć ? czy kiedykolwiek został zbudowany zegar na 8051 który się nie późni ?
Pozdrawiam,
Paweł
Robię zegar, czy istnieje jakakolwiek metoda dla 8051 aby odmierzyć dokładnie 1sekundę, wszytko było by ok gdyby przerwanie było generowane co konkretną ilość taktów niestety tak nigdy nie da się zrobić ponieważ poza timerem trzeba zrobić jakąś nieskończoną pętlę a wszystkie skoki w 8051 trwają 24 cykle zegar za czym idzie to że czasem przerwanie timera trafia na początek cyklu skoku za czym idzie jedno cyklowe opóźnienie wykonania przerwania.
np. pętla
emptyloop:
sjmp emptyloop
wykonuje się co 24 cykle a przerwanie timera czasem jest wywoływane w środku wykonywania sjmp a czasem na początku i musi przez 12 cykli dokonczyć sjmp-a zanim skoczy do timera
czy istnieje jakiś sposób żeby to ominąć ? czy kiedykolwiek został zbudowany zegar na 8051 który się nie późni ?
Pozdrawiam,
Paweł