Bezpośrednie ustawianie, resetowanie pinów w AVR

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

Reply to
Andrzej Kasprzak
Loading thread data ...

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

Reply to
Marek Lewandowski

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ć.

Reply to
Adam Dybkowski

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

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.

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

Pozdrawiam

Andrzej Kasprzak

Reply to
Andrzej Kasprzak

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

Reply to
Andrzej Kasprzak

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.