Odpowiedz 
 
Ocena wątku:
  • 3 Głosów - 3.33 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie w języku C w środowisku AVR Studio4
SP4EJT Offline
Marcin
****

Liczba postów: 340
Dołączył: 06-05-2011
Post: #105
RE: Programowanie w języku C w środowisku AVR Studio4
Dzięki, Tomku SQ8MHI, że mnie wspomogłeś - ja dopiero mam czas na siedzenie przed kompem, córka mi żyć dzis nie dała i nie miałem czasu wyjaśniać Jarkowi.
(11-02-2012 23:11)SP9LAP napisał(a):  No i jeszcze żebym miał pełny pogląd na sytuację: Jaki stan ustala się na na A0 i pozostałych pinach portu A po pierwszej linijce programu czyli po:

DDRA = 0b00000001;

bo wygląda że przypadkowy. Pasowałaby zaraz po niej instrukcja np.:

PORTA= 0b00000000;
Musiałbyś poczytac trochę o Atmedze. Istnieje takie zjawisko jak wartość domyślna ( początkowa ? ) rejestru(ów). Jeżeli nie ustawisz inaczej to wszystkie rejestry:
- DDRA, DDRB, C, D - nazwijmy je DDRx oraz rejestry PORTx mają wartoć 0 ( lub jak wolisz 0b00000000 ).
Zatem nie pisząc nic co dotyczy tych portów powodujesz że maja wpisane w rejestry zera ( bo nie zmieniasz tych zer na inne wartości ).
Ale jeżeli to ułatwi ci zrozumienie kodu lub czytelność dodawaj linijkę PORTA= ....
Ja poprostu już pamiętam że domyślnie są zera
SP9LAP napisał(a):I jeszcze jedno. Instrukcja

if(bit_is_clear(PINB, 0)) sprawdza 0 na B0, a
if(bit_is_clear(PINB, 2)) sprawdza 0 na B2...itd.. ??Smile

Zaraz to sprawdzę empirycznie Smile

Tnx, Jarek sp9lap
Tak, if(bit_is_clear(PINB, 2)) sprawdza czy jest 0 na B2, bo wyrażenie bit_is_clear(PINB, 2) przyjmuje wartość 1 jesli na B2 jest stan niski.
Jeszcze jakieś pytania ?
(Ten post był ostatnio modyfikowany: 12-02-2012 0:02 przez SP4EJT.)
12-02-2012 0:01
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 12-02-2012 0:01

Skocz do:


Użytkownicy przeglądający ten wątek: 23 gości