Re: Odczyt stanu wej?cia w ATmega8 i opó?nienie

A wiecie dlaczego o to pytałem. Bo wpadła mi do rąk książka "AVR i ARM7 programowanie mikrokontrolerów dla każdego" wyd. Helion i tam jest przykład odczytu klawiatury 4x4. Autor (dr inż.) wpisuje na PORTD.2 i 3 stany wysokie a odczytuje linię PIND.0 i 1 i przed odczytem pisze ze musi byc instrukcja nop. Pisze coś takiego "Dokumentacja ATmega8 podaje że stabilizacja stanu wejścia wymaga około jednego taktu zegara. chodzi o to że stany bitów PORTx są kopiowane do rejestru PINx a poprawne wykonanie tej operacji wymaga jednego taktu zegara."

Kompletnie nie wioem o co tu chodzi, nic nie wyjaśnił, jest tylko przykład jak podaem z odczytem klawiatury i ten cytowany krótki komentarz. Wytłumaczcie jak możecie co jest grane?

Reply to
slawek7
Loading thread data ...

slawek7 pisze:

W uproszczeniu: Jak wystawiasz coś na port to najpierw jest ta wartość zapisywana do rejestru wyjściowego (PORTx). Na początku cyklu pracy stan wejść jest kopiowany do rejestru wejściowego (PINx) a wyjścia są ustawiane wg wartości z PORTx. Sam stan zmienia się równolegle z wykonywaniem kolejnej instrukcji.

Dlatego w przypadku klawiatury, gdzie jak rozumiem 0,1 to wiersze a 2,3 to kolumny, musisz poczekać aż wartość z PORTx.2 zostanie użyta do ustawienia wyjścia - prąd popłynie przez przycisk i zmieni stan na wejściu, który zostanie umieszczony w rejestrze PINx.0 na początku kolejnej instrukcji.

Reply to
Michoo

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.