Na początek, któtka analiza tego co napisałeś.
No to po kolei...
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tej linijki kodu nigdy nie wpisujemy w kodzie, tylko ustawiamy we właściwościach projektu.
Zerowanie więcej niż jednego bitu lepiej zapisać tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
a nie tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jeszcze przed pętlą główną ustawiasz PB3 i PB4 w rejestrze kierunku jako wyjścia.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Następnie ustawiasz na nich stan niski. Z tego co widzę, masz podłączoną jedną diodę LED jej anodą do Vcc, więc by dioda ta się zaświeciła musisz podać stan niski na jej katodę. Stan wysoki natomiast podajesz na jej katodę, by je wyłączyć. W takim razie na samym początku teoretycznie (bo masz podłączoną tylko jedną diodę do chyba PB3) obie diody zostaną zapalone.
Teraz program wchodzi do pętli głównej while(1) i napotyka na linijkę, która gasi diodę podłączoną do PB3:
PORTB |= (1<<PB3);
Następnie czeka sobie 1000ms.
Po czym gasi drugą diodę podłączoną do PB4.
PORTB |= (1<<PB4);
Znowu czeka 1000ms.
Po czym napotyka na instrukcję return.
Instrukcja return powoduje wyjście, opuszczenie funkcji, więc program ten kończy swoje działanie.
Jeżeli Twoim celem było napisanie programu, który ma zapalić diodę na PB3, po sekundzie zapalić diodę na PB4, przez kolejną sekundę diody te mają się świecić, po czym na sekundę mają zgasnąć i tak w kółko, to program ten mógłby wyglądać tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Widzisz dodałem jeszcze jednego delay'a, bo bez niego dioda PB3 będzie się cały czas świecić.
Będzie tak dlatego, że po wykonaniu tej linijki kodu:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
program przeskoczy do tej na samym początku w pętli while:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Nie będziesz w stanie zaobserwować jej zgaszenia.
Natomiast dioda podłączona do PB4 będzie zapalała się na 1000ms i gasła na 1000ms.
Osobiście polecam Ci zacząć przede wszystkim od książki:
http://atnel.pl/mikrokontrolery-avr-jezyk-c.htmli od poczytania bloga:
http://mirekk36.blogspot.co.uk/2012/01/avr-porty-wewy-dir-podstawy.htmlhttp://mirekk36.blogspot.co.uk/2015/07/eclipse-start-plus-pierwszy-program.htmlhttp://mirekk36.blogspot.co.uk/2011/11/dlaczego-eclipse-zamiast-avr-studio.html Powodzenia!
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
O i Mirek mnie ubiegł!
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)