Re: Arduino generování pulzů
Pavel Hudeček
edizon na seznam.cz
Úterý Srpen 1 10:03:21 CEST 2023
U AVR je to naopak, staré to neměly a nové mají pod PORT registry ještě
OUT, OUTSET, OUTCLR a OUTTGL. A stejně i u dalších registrů.
Na klasických AVR, tedy včetně "arduinových" zakázat přerušení, provést
operaci a povolit.
Ty nové mají i mnoho dalších příjemných vlastností, takže už jsem dlouho
staré nikam nepoužil. Kdybych nutně potřeboval modul, místo Arduina bych
použil devkit od nových AVR. Ale uznávám, že cena toho devkitu je řádově
jinde:-)
PH
Dne 01.08.2023 v 6:43 Zdenek napsal(a):
>
> U starších procesorů bývaly instrukce ANL PORT,maska a ORL PORT,maska,
> kdy čtení stavu a zápis proběhlo v jedné instrukci. To bylo odolně
> vůči přerušení.
>
> Nevím, jestli u nových existuje obdoba tohoto přístupu…
>
> *From:*Hw-list [mailto:hw-list-bounces na list.hw.cz] *On Behalf Of *Petr
> Zapadlo
> *Sent:* Tuesday, August 1, 2023 6:28 AM
> *To:* hw-list na list.hw.cz
> *Subject:* Re: Arduino generování pulzů
>
> Zdravím,
>
> to jsem neznal díky. Jak se dívám, tak digitalWritefast() je pouze
> sada maker, která rozvine zápis na GPIO na zápis přes registry
> případě konstantního argumentu čísla pinu.
>
> Tenhle syntaktický cukr je už na můj vkus příliš sladký, asi zůstanu u
> klasického přístupu - pokud to bude nekritické, tak digitalWrite,
> pokud to bude časově kritické, tak přístup přes registry (a nemíchat v
> jednom kodu).
>
> Spíše mě zaujala ta poznámka o neatomicitě zápisu v přerušení.
>
> Chápu to správně, že když se mi přerušení, které manipuluje například
> s bity 4-7 portu D trefí přesně do okamžiku kdy jsem načetl stav portu
> D pro potřeby například OR (chci nahodit bit 0, portu D), tak vlastně
> po zápisu na port v hlavní smyčce "vymažu" změnu co proběhla v přerušení?
>
> Jak se to dá řešit? ( samozřejmě kromě zakázání přerušení)
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230801/9341b09e/attachment.htm>
Další informace o konferenci Hw-list