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

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
Ma do Was prosbEA%.
W dokumentacji ATmega8 w rozdziale dotyczacym portF3%w I/O jest taki
fragment mF3%wiB1%cy o odczycie stanu wejB6%cia.
Na stronie 52 piszB1%, BF%e odczyt stanu rejestru PIN powinien byc
poprzedzony pewnym opF3%BCnieniem np instrukcjB1% nop.

MoBF%ecie mi wytB3%umaczyc o co chodzi. Jest to jakas synchronizacja, ale
czy dotyczy to caB3%ego portu, czy tylko danego w danym porcie, czyli np
w porcie D pin 7?

Re: Odczyt stanu wejścia w ATmega8 i op óźnienie
slawek7 pisze:
Quoted text here. Click to load it
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

Re: Odczyt stanu wejścia w ATmega8 i opóźnienie
No wB3%aB6%nie tego zdania!!
Czy chodzi o caB3%y port czy konkretny pin portu, przykB3%ad: Ustawiam
PORTD.43D%1 a odczytuje PIND.2, czy naleBF%y wstawiE6% instrukcje nop?

Re: Odczyt stanu wejścia w ATmega8 i opóźnienie
Quoted text here. Click to load it

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


Re: Odczyt stanu wejścia w ATmega8 i op óźnienie
slawek7 pisze:
Quoted text here. Click to load it

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

--
Pozdrawiam
Michoo

Re: Odczyt stanu wejścia w ATmega8 i opóźnienie
A wiecie dlaczego o to pytaB3%em.
Bo wpadB3%a mi do rB1%k ksiB1%BFka "AVR i ARM7 programowanie mikrokontrole=
rF3%w
dla kaBF%dego" wyd. Helion i tam jest przykB3%ad odczytu klawiatury 4x4.
Autor (dr inBF%.) wpisuje na PORTD.2 i 3 stany wysokie a odczytuje liniEA%
PIND.0 i 1 i przed odczytem pisze ze musi byc instrukcja nop.
Pisze coB6% takiego
"Dokumentacja ATmega8 podaje BF%e stabilizacja stanu wejB6%cia wymaga
okoB3%o jednego taktu zegara. chodzi o to BF%e stany bitF3%w PORTx sB1%
kopiowane do rejestru PINx a poprawne wykonanie tej operacji wymaga
jednego taktu zegara."

Kompletnie nie wioem o co tu chodzi, nic nie wyjaB6%niB3%, jest tylko
przykB3%ad jak podaem z odczytem klawiatury i ten cytowany krF3%tki
komentarz.
WytB3%umaczcie jak moBF%ecie co jest grane?

Re: Odczyt stanu wejścia w ATmega8 i op óźnienie
slawek7 pisze:
Quoted text here. Click to load it
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

Site Timeline