Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Może to głupio zabrzmi, ale nie znalazłem nigdzie odpowiedzi

nestor197
-
-
Posty:13
Rejestracja:19 sie 2007, o 19:28
Lokalizacja:Małopolska
Może to głupio zabrzmi, ale nie znalazłem nigdzie odpowiedzi

Postautor: nestor197 » 4 lut 2008, o 22:57

Mianowicie chodzi mo o konfigórację portów

Czym sie rózni zapis:

config portb.1 = input od zapisu config pinb.1= input

Oba zapisy po skompilowaniu działają prawie zawsze poprawnie :)

Wzorujac sie n a książżce M. Wiązani znalazłem oba zapisy użyte w podobnych miejscach :(

podobna sprwa jest jak robimy porty wyjściowe

Nie rozumie tego zupełnie, kiedyś miąłem pewną teorie na ten temet, ale dzisiaj runeła w gruzach a mianowicie

Sprawdzam stany portów w przerwaniach i jak zrobie:

na przykład:
if pinb.1 =0 then ..........
to wtedy działa mi poprawnie

ale jak zrobie:
if pinb.1=0 then ............
to niesttey nie działą

Ale jeśłi to samo umieszcze w programie a nie w obsłudze przerwania to już działą- porażka :(
siedziałem nad tym dziadostwem 2 godzimy i nie mogłem dojść dlaczego mi to ie działą
Może było to spowodowane tym iż przerwania mam co 0.01 sekundy i procek nie nadążał, ale pewny nie jestem


Tak wiec prosż eo jakomś podpowiedz

Pozdrawiam i czekam na lawine hipotez :)

kenaJ
-
-
Posty:29
Rejestracja:13 lis 2006, o 22:31
Lokalizacja:Kraków

Postautor: kenaJ » 4 lut 2008, o 23:45

Witam!

Nie tak dawno "przerabiałem" wspomnianą przez Ciebie książkę z racji robienia pracy dyplomowej.

Wspominasz o odczytywaniu stanu logicznego linii portów i tu zacytuję malutki fragment:
"Do odczytania stanu logicznego wyprowadzeń portów należy zawsze używać rejestru PINx, a nie PORTx, gdyż odczyt zawartości tejestru PORTx, spowoduje odczytanie tylko stanu wewnętrznych zatrzasków, a nie aktualnych stanów logicznych linii portu." [Wiązania M. "Programowanie µ_kontrolerów AVR w języku BASCOM", strona 74].

Wynika stąd, że odpytywanie o aktualny stan linii portu musi odbywać się przez rejestr PINx, co robisz w instrukcji warunkowej If ... Then.

Moim skromnym zdaniem tu tkwi problem.

Pozdrawiam! :599:

RcTomek
-
-
Posty:357
Rejestracja:18 lip 2005, o 17:28
Lokalizacja:Głogów / Wrocław

Postautor: RcTomek » 5 lut 2008, o 20:52

Config PinB.1 = Input piszemy, gdy konfigurujemy pojedyńczą końcówkę
natomiest Config PortB = Input (bez jedynki) w przypadku konfiguracji całego portu

Przy okazji radzę wziąć dokumentację pierwszego lepszego AVRka i zainteresować się rejestrami PORTx, PINx i DDRx :)

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 29 gości