-
1. Data: 2010-06-24 11:39:23
Temat: Odczyt stanu wejścia w ATmega8 i opóźnienie
Od: slawek7 <s...@w...pl>
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?
-
2. Data: 2010-06-24 14:18:47
Temat: Re: Odczyt stanu wejścia w ATmega8 i opóźnienie
Od: Michoo <m...@v...pl>
slawek7 pisze:
> 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
-
3. Data: 2010-06-24 17:20:11
Temat: Re: Odczyt stanu wejścia w ATmega8 i opóźnienie
Od: slawek7 <s...@w...pl>
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?
-
4. Data: 2010-06-24 17:41:50
Temat: Re: Odczyt stanu wejścia w ATmega8 i opóźnienie
Od: "Marcin Wasilewski" <j...@a...pewnie.je.st>
Użytkownik "slawek7" <s...@w...pl> napisał w wiadomości
news:ccbdd0a4-f315-43c1-b6f6-c96801adfd6b@q12g2000yq
j.googlegroups.com...
> 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.
-
5. Data: 2010-06-24 19:51:00
Temat: Re: Odczyt stanu wejścia w ATmega8 i opóźnienie
Od: Michoo <m...@v...pl>
slawek7 pisze:
> 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
-
6. Data: 2010-06-26 14:13:38
Temat: Re: Odczyt stanu wejścia w ATmega8 i opóźnienie
Od: slawek7 <s...@w...pl>
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?
-
7. Data: 2010-06-26 16:21:03
Temat: Re: Odczyt stanu wejścia w ATmega8 i opóźnienie
Od: Michoo <m...@v...pl>
slawek7 pisze:
> "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