RTV forum PL | NewsGroups PL

Jakie opóźnienie zastosować przy odczycie stanu portu I/O w ATmega8?

Odczyt stanu wejścia w ATmega8 i opóźnienie

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jakie opóźnienie zastosować przy odczycie stanu portu I/O w ATmega8?

slawek7
Guest

Thu Jun 24, 2010 1:39 pm   



Ma do Was prosbę.
W dokumentacji ATmega8 w rozdziale dotyczacym portów I/O jest taki
fragment mówiący o odczycie stanu wejścia.
Na stronie 52 piszą, że odczyt stanu rejestru PIN powinien byc
poprzedzony pewnym opóźnieniem np instrukcją nop.

Możecie mi wytłumaczyc o co chodzi. Jest to jakas synchronizacja, ale
czy dotyczy to całego portu, czy tylko danego w danym porcie, czyli np
w porcie D pin 7?

Michoo
Guest

Thu Jun 24, 2010 2:18 pm   



slawek7 pisze:
Quote:
Ma do Was prosbę.
W dokumentacji ATmega8 w rozdziale dotyczacym portów I/O jest taki
fragment mówiący o odczycie stanu wejścia.
Na stronie 52 piszą, że odczyt stanu rejestru PIN powinien byc
poprzedzony pewnym opóźnieniem np instrukcją nop.

Możecie mi wytłumaczyc o co chodzi. Jest to jakas synchronizacja, ale
czy dotyczy to całego portu, czy tylko danego w danym porcie, czyli np
w porcie D pin 7?
When *reading back* a *software assigned* pin value, a nop instruction

must be inserted as indicated in Figure 24.

Czego nie rozumiesz w tym zdaniu?

--
Pozdrawiam
Michoo

Marcin Wasilewski
Guest

Thu Jun 24, 2010 5:41 pm   



Użytkownik "slawek7" <sholojda@wp.pl> napisał w wiadomości
news:ccbdd0a4-f315-43c1-b6f6-c96801adfd6b@q12g2000yqj.googlegroups.com...
Quote:
No właśnie tego zdania!!
Czy chodzi o cały port czy konkretny pin portu, przykład: Ustawiam
PORTD.4=1 a odczytuje PIND.2, czy należy wstawić instrukcje nop?

Nie trzeba. Jedynie we właśnie ustawionym pinie w nast. cyklu mógłbyś
otrzymać nieaktualny odczyt.

slawek7
Guest

Thu Jun 24, 2010 7:20 pm   



No właśnie tego zdania!!
Czy chodzi o cały port czy konkretny pin portu, przykład: Ustawiam
PORTD.4=1 a odczytuje PIND.2, czy należy wstawić instrukcje nop?

Michoo
Guest

Thu Jun 24, 2010 7:51 pm   



slawek7 pisze:
Quote:
No właśnie tego zdania!!
Czy chodzi o cały port czy konkretny pin portu, przykład: Ustawiam
PORTD.4=1 a odczytuje PIND.2, czy należy wstawić instrukcje nop?

Nieaktualne jest to co zapisałeś więc jak są to różne piny to nie ma
problemu.

--
Pozdrawiam
Michoo

slawek7
Guest

Sat Jun 26, 2010 4:13 pm   



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?

Michoo
Guest

Sat Jun 26, 2010 4:21 pm   



slawek7 pisze:
Quote:
"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?
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.

--
Pozdrawiam
Michoo

elektroda NewsGroups Forum Index - Elektronika Polska - Jakie opóźnienie zastosować przy odczycie stanu portu I/O w ATmega8?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map