RTV forum PL | NewsGroups PL

Swobodne ustawianie pinów I/O w AVR jak uniknąć błędnych zapisów?

Bezpośrednie ustawianie, resetowanie pinów w AVR

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Swobodne ustawianie pinów I/O w AVR jak uniknąć błędnych zapisów?

Andrzej Kasprzak
Guest

Wed Nov 24, 2004 9:30 am   



Czy w AVR'ach mozna swobodnie ustawiac dowolne piny I/O
bez niebezpieczeństwa zatrzasniecia fałszywej informacji w rejestrze
pinu ustawionego jako WYJSCIE ?
Tak jest niestety w PICach, ST6 i ST7 - chciałem trochę oszczedzić kodu
wiec wolałbym pisąc na piny wprost.
Prosze o jakiś link ewentualnie bo nic nie znalazłem na ten temat

Pozdrawiam

Andrzej

Marek Lewandowski
Guest

Wed Nov 24, 2004 7:13 pm   



Andrzej Kasprzak wrote:

Quote:
Czy w AVR'ach mozna swobodnie ustawiac dowolne piny I/O
bez niebezpieczeństwa zatrzasniecia fałszywej informacji w rejestrze
pinu ustawionego jako WYJSCIE ?

tzn o o ci chodzi?
AFAIR to rejestry portów w AVR są read-modify-write, więc powinny być
odporne...
--
Marek Lewandowski ICQ# 10139051/GG# 154441
locustXpoczta|onet|pl
http://www.stud.uni-karlsruhe.de/~uyh0
[! Odpowiadaj pod cytatem. Tnij cytaty. Podpisuj posty. !]

Adam Dybkowski
Guest

Thu Nov 25, 2004 12:47 am   



Andrzej Kasprzak wrote:

Quote:
Czy w AVR'ach mozna swobodnie ustawiac dowolne piny I/O
bez niebezpieczeństwa zatrzasniecia fałszywej informacji w rejestrze
pinu ustawionego jako WYJSCIE ?

Można spokojnie. W AVRach są oddzielne rejestry odczytu stanu portu,
ustawiania stanu portu (i pull-up'ów) oraz ustawiania kierunku linii
portu. Ustawienie jednego bitu w porcie, którego niektóre linie są
wejściami, przykładowo:

PORTA |= (1 << nrbitu);

to instrukcja read-modify-write na rejestrze wyjściowym PORTA - jej
działanie nie zależy od aktualnego stanu linii wejściowych. Takie
problemy były zmorą architektury 8051, ale w AVRach jest wszystko w
porządku.

BTW: W procesorach ARM jeszcze lepiej wymyślili: pod inny adres zapisuje
się maskę bitów, które chcemy ustawić w I/O, a pod inny maskę bitów,
które chcemy zgasić.

--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/

Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.

Andrzej Kasprzak
Guest

Thu Nov 25, 2004 10:10 am   



Quote:
Czy w AVR'ach mozna swobodnie ustawiac dowolne piny I/O
bez niebezpieczeństwa zatrzasniecia fałszywej informacji w rejestrze
pinu ustawionego jako WYJSCIE ?

Można spokojnie. W AVRach są oddzielne rejestry odczytu stanu portu,
ustawiania stanu portu (i pull-up'ów) oraz ustawiania kierunku linii
portu. Ustawienie jednego bitu w porcie, którego niektóre linie są
wejściami, przykładowo:

PORTA |= (1 << nrbitu);

to instrukcja read-modify-write na rejestrze wyjściowym PORTA - jej
działanie nie zależy od aktualnego stanu linii wejściowych.

Dokładnie o to mi chodziło - to mocno upraszcza operację na portach -
oczywiscie
czasami. Ale jeżeli nie jest to konieczne to rzeczywiście set pin czy clear
pin oszczedza
troche kodu.


Takie
Quote:
problemy były zmorą architektury 8051, ale w AVRach jest wszystko w
porządku.

dokładnie, wiec wśród "starych" programistó pokutuje przekoannie że trzeba
zawsze operowac
na całym bajcie- porcie robiąc maski na pinach które chce sie rzeczywiście
zmienic.

Quote:

BTW: W procesorach ARM jeszcze lepiej wymyślili: pod inny adres zapisuje
się maskę bitów, które chcemy ustawić w I/O, a pod inny maskę bitów,
które chcemy zgasić.

Tu widac że sporo ludzi przewinęło sie przez '51-ki i wiedzieli co trzeba
poprawic.

Pozdrawiam

Andrzej Kasprzak

Quote:

--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/

Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.


Andrzej Kasprzak
Guest

Thu Nov 25, 2004 10:12 am   



Quote:
Czy w AVR'ach mozna swobodnie ustawiac dowolne piny I/O
bez niebezpieczeństwa zatrzasniecia fałszywej informacji w rejestrze
pinu ustawionego jako WYJSCIE ?

tzn o o ci chodzi?
AFAIR to rejestry portów w AVR są read-modify-write, więc powinny być
odporne...

tez na to liczę ale w systemach bezobsługowych nie mozna sobie pozolić na
szaleństwa
i nie przewidziane przez projaktanta działanie wiec chce się upewnić.

Pozdrawiam

Andrzej Kasprzak

Quote:
--
Marek Lewandowski ICQ# 10139051/GG# 154441
locustXpoczta|onet|pl
http://www.stud.uni-karlsruhe.de/~uyh0
[! Odpowiadaj pod cytatem. Tnij cytaty. Podpisuj posty. !]


elektroda NewsGroups Forum Index - Elektronika Polska - Swobodne ustawianie pinów I/O w AVR jak uniknąć błędnych zapisów?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map