Pokrewne
menu      Programowanie uC - wspoldzialanie przerwan i algorytmu - zasady sztuki
menu      Krótka przerwa na PL-IX
menu      Widzieliście teraz to przerwę na łączach ?
menu      [AVRGCC] Problem UART na przerwaniach
menu      USB przerwania czy polling
menu      AVR - priorytety przerwań
menu      jak to jest z przerwaniami w AVR?
menu      symulator dla 8051 pod linuxa
menu      [8051] transmisja synchroniczna
menu      8051, RC5 i deasemblacja
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • jamnix.pev.pl
  • Ech, to jak to jest z przerwaniami w 8051





    Totylkoja - 25-09-2006 11:45
    Ech, to jak to jest z przerwaniami w 8051
      Witam

    Czytałem PDF'a do 8051 ale czy to, dlatego że słabo znam angielski czy może,
    dlatego że katalog tego nie wyjaśniał mam pewien niedosyt. Wiem, że 8051 na
    2 poziomy przerwań i że Timer0 ma wyższy priorytet niż Timer1. Ale co jeśli
    chcę mieć 3 przerwania, int0 ustawiony jako "high lewel" i TF0 i TF1 jako
    "low lewel" Timer0 i timer1 zliczają ten sam wewnętrzny zegar, ale są
    ustawione na inne stopnie podziału. Mimo to, co jakiś czas muszą, generować
    przerwanie w tym samym czasie. I tu pytanie co z przerwaniem od TF1 w
    trakcie obsługi przerwania od TF0 ? Czy ono "zginie" czy też procesor
    "zapamięta je" i zacznie obsługiwać zaraz po skończeniu przerwania TF0?
    Czyli czy zaraz po wykonaniu "reti" w obsłudze TF0 zostanie rozpoczęte
    przerwanie TF1?

    MArek





    Andy - 25-09-2006 13:45

      Użytkownik "Totylkoja" <marek.b@nie.chce.tego.poczta.fm> napisał w
    wiadomości news:ef885h$53v$1@nemesis.news.tpi.pl...
    >...
    > Czytałem PDF'a do 8051 ale czy to, dlatego że słabo znam angielski czy
    > może, dlatego że katalog tego nie wyjaśniał mam pewien niedosyt. Wiem, że
    > 8051 na 2 poziomy przerwań i że Timer0 ma wyższy priorytet niż Timer1. Ale
    > co jeśli chcę mieć 3 przerwania, int0 ustawiony jako "high lewel" i TF0 i
    > TF1 jako "low lewel" Timer0 i timer1 zliczają ten sam wewnętrzny zegar,
    > ale są ustawione na inne stopnie podziału. Mimo to, co jakiś czas muszą,
    > generować przerwanie w tym samym czasie. I tu pytanie co z przerwaniem od
    > TF1 w trakcie obsługi przerwania od TF0 ? Czy ono "zginie" czy też
    > procesor "zapamięta je" i zacznie obsługiwać zaraz po skończeniu
    > przerwania TF0? Czyli czy zaraz po wykonaniu "reti" w obsłudze TF0
    > zostanie rozpoczęte przerwanie TF1?
    >

    Nie zginie.

    Jesli sa na tym samym priorytecie to inne przerwanie, ktore sie
    przytrafi w trakcie wykonywania procedury
    obslugi przerwania zaczeka do jego skonczenia tzn. do reti.
    I chyba, o ile pamietam, wykona sie jedna instrukcja
    z glownego programu.
    Nastepnie wskoczy do obslugi tego czekajacego przerwania.

    --
    Andrzej




    Totylkoja - 25-09-2006 14:45

      witam

    Użytkownik "Andy" <anokWYTNIJ@ceti.pl> napisał w wiadomości
    news:ef8f6o$ad2$1@elrond.ghnet.pl...
    > Użytkownik "Totylkoja" <marek.b@nie.chce.tego.poczta.fm> napisał w
    > wiadomości news:ef885h$53v$1@nemesis.news.tpi.pl...
    [ciach]
    >
    > Nie zginie.
    >

    No to kamień z serca

    Bo już się bałem że raz na jakiś czas będzie ginąć i będzie mi się
    rozjeżdżał pomiar o to jedno przerwanie

    MArek




    Adam Wysocki - 26-09-2006 04:45

      Spinacz biurowy, Andy <anokWYTNIJ@ceti.pl>!

    > Jesli sa na tym samym priorytecie to inne przerwanie, ktore sie
    > przytrafi w trakcie wykonywania procedury
    > obslugi przerwania zaczeka do jego skonczenia tzn. do reti.

    A jeśli to drugie przerwanie zostanie zgłoszone np. 2x?

    --
    Adam Wysocki, Warszawa, PL, GSM 514 710 213, http://www.chmurka.net/
    GG 1234, Grono ID 123, FidoNet 2:480/138, QTH KO02MF, SWL SP5-250730
    Pozbawił mnie sygnaturki strzał z dwururki (C) tren R @ appm 03.2003
    W prezencie dla spamerów: http://polish-652386062723.spampoison.com/





    Darek - 26-09-2006 09:45

      > > Jesli sa na tym samym priorytecie to inne przerwanie, ktore sie
    > > przytrafi w trakcie wykonywania procedury
    > > obslugi przerwania zaczeka do jego skonczenia tzn. do reti.
    >
    > A jeśli to drugie przerwanie zostanie zgłoszone np. 2x?

    zostanie utracone i przerwanie zostanie wykonane jednokrotnie.
    Jedna flaga przerwania może zgłosić tylko wystąpienie jednego zdarzenia.

    Pozdrawiam
    Darek




    Jacek M. - 26-09-2006 09:45

      >> > Jesli sa na tym samym priorytecie to inne przerwanie, ktore sie
    >> > przytrafi w trakcie wykonywania procedury
    > >> obslugi przerwania zaczeka do jego skonczenia tzn. do reti.
    > >
    > >A jeśli to drugie przerwanie zostanie zgłoszone np. 2x?
    >
    > zostanie utracone i przerwanie zostanie wykonane jednokrotnie.
    > Jedna flaga przerwania może zgłosić tylko wystąpienie jednego zdarzenia.
    Dawno bawilem sie '51, ale wydaje mi sie ze nie do konca jest to prawda.
    Moim zdaniem programista ma obowiazek po wejsciu do funkcji obslugi
    przerwania skasowac flage.
    Jesli ponowne ustawienie flagi nastapi przed jej skasowaniem to rzeczywiscie
    bedzie tak jak kolega napisal. Jesli natomiast flaga zostanie ponownie
    ustawiona po jej skasowaniu to po zakonczniu bierzacego przerwania znowu
    zostanie ono wywolane. Zaznaczam, ze pisze o tym samym przerwaniu.
    Tak jak napisalem dawno zajmowalem sie '51-ami i moge sie mylic.

    Jacek M.




    Darek - 26-09-2006 10:45

     
    > >> > Jesli sa na tym samym priorytecie to inne przerwanie, ktore sie
    > >> > przytrafi w trakcie wykonywania procedury
    > > >> obslugi przerwania zaczeka do jego skonczenia tzn. do reti.
    > > >
    > > >A jeli to drugie przerwanie zostanie zgłoszone np. 2x?
    > >
    > > zostanie utracone i przerwanie zostanie wykonane jednokrotnie.
    > > Jedna flaga przerwania może zgłosić tylko wystąpienie jednego zdarzenia.
    > Dawno bawilem sie '51, ale wydaje mi sie ze nie do konca jest to prawda.
    > Moim zdaniem programista ma obowiazek po wejsciu do funkcji obslugi
    > przerwania skasowac flage.

    nie do końca i nie tyczy się to tylko 51, avr ma podobnie a mianowicie,
    są przerwania dla których przyjęcie przerwania kasuje flagę a są takie gdzie
    trzeba to robić z "łapy" w procedurze obsługi.

    > Jesli ponowne ustawienie flagi nastapi przed jej skasowaniem to rzeczywiscie
    > bedzie tak jak kolega napisal. Jesli natomiast flaga zostanie ponownie
    > ustawiona po jej skasowaniu to po zakonczniu bierzacego przerwania znowu
    > zostanie ono wywolane. Zaznaczam, ze pisze o tym samym przerwaniu.
    > Tak jak napisalem dawno zajmowalem sie '51-ami i moge sie mylic.

    Ja pisałem natomiast, zgodnie z tematem, o różnych przerwaniach. Jeżeli mamy przerwania
    o tym samym priorytecie A i B to wykonując procedurę obsługi A
    nie można stwierdzić czy przerwanie B pojawiło się 1x czy 10x, dlatego
    obsługa przerwania powinna trwać minimalną liczbę cykli zegarowych.

    Pozdrawiam
    Darek
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl
  • Design by flankerds.com