gmp wrote:
Cytat: Procek obsluguje poprawnie 4xmnijesze czestotliwosci od zegara.
Dziwne, ale z dokumentacji wynika coś zupełnie innego.
Mikrokontroler poprawnie rozpoznaje zmianę stanu (przy reakcji na zbocze) o ile stan ten trwa dłużej niż jeden cykl zegarowy. Przy czasach krótszych może wykryć albo nie.
Pan Arkadiusz Krysiak w swojej książce o AT90S2313 pisze:
Cytat: Od momentu pojawienia się zdarzenia, wywołującego przerwanie muszą upłynąć 4 cykle zegarowe. Jeśli po upływie 4 cykli zegarowych jednostka centralna jest w trakcie wykonywania rozkazu o czasie trwania większym niż 1 cykl zegarowy, obsługa przerwania zostaje wstrzymana do zakończenia tego rozkazu. Po tym czasie jednostka centralna przystępuje do wykonania obsługi przerwania. W czasie 2 cykli rozkazowych na stos zostaje odłożony adres powrotu. Następnie zostaje wykonana instrukcja, znajdująca się pod adresem wektora przerwania odpowiedniego dla zdarzenia powodującego przerwanie. Łączny czas przyjęcia przerwania (razem z wykryciem go) trwa minimum 8 cykli rozkazowych. Powrót z obsługi przerwania trwa 4 cykle zegarowe, podczas których zostaje podniesiony ze stosu adres powrotu oraz ustawiany znacznik zezwolenia naprzerwania globalne I(SREG). Po wyjściu z przerwania zostaje wykonana przynajmniej jedna instrukcja z programu głównego, zanim zostanie przyjęte kolejne przerwanie, pod warunkiem wykonania 4 cykli zegarowych, podczas których jednostka centralna wykrywa zaistnienie zdarzenia zgłoszenia przerwania.
Ja się już doliczyłem minimum 13 cykli zegarowych a jeszcze niczego nie zrobiliśmy w związku z obsługą przerwania (oprócz powrotu). Nawet jeśli autor ma rację tylko w połowie to i tak mikrokontroler nie obsługuje 4 x mniejszych częstotliwości. A na dodatek w dokumentacji napisali, że jeśli kolejne zbocze wystąpiło w trakcie obsługi jakiegoś przerwania i stan na wejściu wrócił do tego przed wystąpieniem zbocza zanim mikrokontroler zakończył obsługę trwającego przerwania to niestety... przeminęło z wiatrem. Tak, czy siak, dokumentację trzeba czytać a cykle zegarowe liczyć. Nie ma nic za darmo

.