Dioda po włączeniu zasilania miała mignąć 12 razy i zgasnąć. Może ktoś znajdzie mi błąd. Bardzo proszę o pomoc.
Kod: C / C++
Czy wolisz polską wersję strony elektroda?
Nie, dziękuję Przekieruj mnie tamsp5gbw napisał:Jest.Rezystor nie jest konieczny.
sp5gbw napisał:No to używaj tamtego programu.Ta dioda z innym programem działa poprawnie.
Cytat:Dioda nie jest elementem symetrycznym. Gdzie jest podłączona katoda a gdzie anoda?A dioda włączona jest do PB0 PB1.
Bartosz36 napisał:Mhm jasne. To podłącz anodę do PB1 i spróbuj zaświecić diodę programem pokazanym przez Autora wątku ;] Zmiany hardware'owe raczej nie pomogą na (tajemnicze) błędy kompilacji, o których wspomina AutorBez znaczenia gdzie katoda, gdzie anoda. Jako WYJŚCIA ustawione są zarówno piny PB0 jak i PB1, ponieważ: DDRB = 0x03.
szczywronek napisał:Autor tematu w swoim programie ustawił zarówno PB0 jak i PB1 jako wyjścia, więc podłączanie anody do PB1 jest bez sensu. Ponieważ w pętli operuje jedynie na stanie pinu PB0 to zaproponowałem mu rozwiązanie sprzętowe uwzględniające pętlę for().To podłącz anodę do PB1 i spróbuj zaświecić diodę programem pokazanym przez Autora wątku ;]
Bartosz36 napisał:Dlatego właśnie pytałem o szczegóły podłączeniapodłączanie anody do PB1 jest bez sensu.
Bartosz36 napisał:Od razu błądMój błąd
piotrva napisał:Kto tu mówi o PB2? Autor wykorzystuje piny PB0 i PB1, pod te piny także podłączył diodę (w taki, bądź inny sposób...) i na tym bazuje moja odpowiedź. Alepin PB2 będzie wejściem
piotrva napisał:Z tym się zgadzam w pełniTo gdzie jest anoda a gdzie katoda ma znaczenie i to duże
Bartosz36 napisał:W przypadku rozwiązania software'owego autor musiałby zmienić jedynie linijkę DDRB = 0x03 na DDRB = 0x01 i to mogłoby rozwiązać problem.
sp5gbw napisał:Bardzo proszę o pomoc.
piotrva napisał:F_CPU deklaruj w opcjach projektu.
sp5gbw napisał:Chciałbym zwrócić uwagę, że zamieszczony listing nie da się skompilowaćZamieszczam mój działający listing
Bartosz36 napisał:Zakończenie programu to akurat nie zmartwienie kompilatora. Po resecie procesor wykonuje kod "rozbiegowy" (inicjalizacja zmiennych, ustawienie stosu i takie tam pierdoły). Rozbiegówka wywołuje funkcję main jak każdą inną i to od niej (rozbiegówki) zależy, co się będzie działo po powrocie z main. Atmelowy toolchain, przykładowo, wyłącza przerwania i wpada w pętlę nieskończoną:Normalnie kompilatory potrafią sobie z tym poradzić (jeśli dobrze pamiętam zastępując return 0 pętlą nieskończoną)