eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikauC poczatekRe: uC poczatek
  • Data: 2009-03-09 23:29:20
    Temat: Re: uC poczatek
    Od: "T.M.F." <t...@n...mp.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Zbych pisze:
    > T.M.F. pisze:
    >
    >> Zreszta policzmy ile to kosztuje
    >> Najgorszy mozliwy wariant, czyli rejestr kontrolny jest spoza zasiegu
    >> sbi/cbi:
    >> PUSH R16
    >> LD R16,rejestr z flaga
    >> ORI R16, blokowane przerwania
    >> STS rejestr, R16
    >> SEI
    >>
    >> Zajelo to 5 taktow.
    >
    > Bo miałeś tylko jedną flagę, nie zapamiętałeś jej stanu i nie
    > odtworzyłeś jej stanu przed zakończeniem przerwania.

    A po co mam zapamietywac jej stan? Skoro je blokuje to znaczy, ze
    wczesniej musialo byc odblokowane, jesli z danego przerwania nie
    korzystam to po co mialbym je blokowac? Taka potrzeba istnieje tylko
    kiedy mam wiecej niz 1-poziomowa obsluge przerwan, zreszta to co
    najwyzej 1 takt zegara.
    Czasu odtworzenia nie musze liczyc, bo krytyczny jest moment do
    odblokowania przerwan. Co sie dzieje potem w procedurze obslugi
    przerwania dla innych przerwan jest bez znaczenia. Wiec tego nie licze.
    A nawet liczac to porownaj czas RETI dla AVR i '51.

    > Policz ile zajmie
    > takie coś czasu jak będziesz miał kilkanaście działających w systemie
    > przerwań i będziesz chciał mieć kilka o wyższym priorytecie.

    No ile? Nawet odblokowywujac kilka zrodel przerwan obsluga zajmie mniej
    niz jednego dla '51.
    Widze, ze sprytnie usunales moje info, ze na '51 to zajmuje 36-108 cykli
    zegara!!! Dla kazdego przyjetego przerwania! W porownaniu do tego moje
    nawet 12 cykli na przerwanie nic nie znaczy.

    > Po to, żeby tak nie cudować wymyślono priorytety.

    Programowo to tak samo skomplikowane jak zabawa z rejestrami, zeby
    ustawic kontroler. Zreszta w ogole tego nie zauwazam, bo mi to zalatwia
    klasa napisana w C++, ktora jest skladnikiem HAL w moim projekcie.
    BTW, ten sam program po zmianie paru klas realizujacych abstrakcje od
    sprzetu kompiluje na PC i o dziwo... dziala.

    >> BTW, o co ci chodzi z tym UARTem?
    >
    > Tak ciężko przeczytać dokumentację? Nie można odblokować przerwań na
    > przed odbiorem/wysłaniem znaku, bo ci się przerwanie zapętli. Więc
    > odpada pomysł z odblokowywaniem przerwań, tuż po wejściu w przerwanie.

    Jak mi sie zapetli? Jesli odblokuje przerwanie Rx lub Tx UARTa to
    znaczy, ze chce je obsluzyc. Zostanie ono natychmiast zgloszone, a
    procedura obslugi musi na poczatku je skasowac, albo poprzez
    zablokowanie flagi, albo poprzez odebranie znaku. W czym problem? Nic mi
    sie nie zapetli bo przerwania sa przy zgloszeniu blokowane.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: