Widzę że wywiązała się bardzo ciekawa debata. Skoro mój wątek przybrał takie wielotematyczne formy to może pomożecie mi z czymś innym. Po co zakładać nowy temat i śmiecić na forum.
Otóż ogarniam sobie przerwania teraz i kombinuje. Napotkałem na mały opór i prosiłbym Was o wytłumaczenie mi dlaczego myślę źle. Mam kod który za pomocą przerwania teoretycznie powinien zaplać i gasić diodę:
Rozumiem to tak: po zezwoleniu na przerwanie sei() rozpoczyna się procedura przerwania i dioda zostaje zapalona. Następnie program wraca do miejsca po sei(), dociera linii wygaszenia diody i funkcja main się kończy. Tymczasem dioda nie mignie nawet raz... Dlaczego?
Nie chodzi mi tu o to jaki sens ma pojedyncze mignięcie diodą tylko o zrozumienie wykonywania procedury... Nawiasem mówiąc zastanawiałem się jak zrobić miganie diody w nieskończoność ale nie bardzo wiem. Na pewno muszę dodać jakąś pętle nieskończoną np. while(1) ale nie wiem gdzie ją umieścić i co w niej zawrzeć bo np. coś takiego dodane po sei()
Spowoduje że dioda w ogole nie miga. Nie dziwiłoby mnie to, bo w końcu pętla jest nieskończona, ale przed nią występuje uruchomienie przerwania, zatem dioda wedle mojego rozumienia znowu powinna raz mignąć, a następnie zamilknąć na wieki tymczasem tak się nie dzieje.... Dioda cały czas jest zgaszona, po zastosowaniu powyższej pętli.
Otóż ogarniam sobie przerwania teraz i kombinuje. Napotkałem na mały opór i prosiłbym Was o wytłumaczenie mi dlaczego myślę źle. Mam kod który za pomocą przerwania teoretycznie powinien zaplać i gasić diodę:
Kod: C / C++
Rozumiem to tak: po zezwoleniu na przerwanie sei() rozpoczyna się procedura przerwania i dioda zostaje zapalona. Następnie program wraca do miejsca po sei(), dociera linii wygaszenia diody i funkcja main się kończy. Tymczasem dioda nie mignie nawet raz... Dlaczego?
Nie chodzi mi tu o to jaki sens ma pojedyncze mignięcie diodą tylko o zrozumienie wykonywania procedury... Nawiasem mówiąc zastanawiałem się jak zrobić miganie diody w nieskończoność ale nie bardzo wiem. Na pewno muszę dodać jakąś pętle nieskończoną np. while(1) ale nie wiem gdzie ją umieścić i co w niej zawrzeć bo np. coś takiego dodane po sei()
Kod: C / C++
Spowoduje że dioda w ogole nie miga. Nie dziwiłoby mnie to, bo w końcu pętla jest nieskończona, ale przed nią występuje uruchomienie przerwania, zatem dioda wedle mojego rozumienia znowu powinna raz mignąć, a następnie zamilknąć na wieki tymczasem tak się nie dzieje.... Dioda cały czas jest zgaszona, po zastosowaniu powyższej pętli.
Moderowany przez tmf:Posty niezwiązane z oryginalnym wątkiem wydzieliłem do nowego tematu. Na przyszłość proszę pamiętać, aby dla nowego problemu założyć nowy wątek. Ułatwia to prowadzenie dyskusji i utrzymuje porządek na forum. Pamiętaj, że wątek czyta nie tylko autor, ale wiele osób szukających pomocy.
