Jakie opóźnienie

Sep 05, 2019 5 Replies

Arduino Uno, Nano, taka sytuacja:



pinMode(11, OUTPUT); pinMode(12, OUTPUT); digitalWrite(11, LOW); delay(1000); digitalWrite(12, LOW); delay(1000);



digitalWrite(11, HIGH); digitalWrite(12, HIGH);



jakiego opóźnienia powinienem się spodziewać pomiędzy ustawieniem pinu



11 i 12 na poziom wysoki? Czy to opóźnienie będzie takie samo jeśli zmiana będzie z poziomu wysokiego na niski? Czy to opóźnienie będzie takie samo dla wszystkich pinów? Czy jest jakiś sposób żeby oba piny zmieniły swój poziom dokładnie w tym samym czasie? Nie bardzo wiem o co pytać google.

Podpowiecie? Z góry dziękuję.


Kilkadziesiat taktow zegara. digitalWrite zawiera sporo kodu jak na tak prosta operacje i wyknoanie trwa. Roznice HIGH/LOW beda stosunkowo male.

Tak, zamiast procowac z pinami trzeba dzialac na porcie. Niestety zamiast gotowca Arduino trzeba pracowac bezposrednio z procesorem.

Jak chcesz wiedziec co mozna to Google: Atmega328 datasheet (pare lat temu dzialalo). Datasheet malo powaga w pisaniu kodu, ale wrzucajac np. nazwy rejestrow do Google dostaniesz przyklady.

W dniu 2019-09-05 o 19:34, Michal M. Lechanski pisze:

Tu jest dyskusja na temat:

formatting link
ą o 2 mikrosekundach.

Programowego sposobu na jednoczesną zmianę stanów wyjść raczej nie ma. Można natomiast zastosować układ opóźniający (np. jakieś rc i bramkę schmitta) na pierwszym wyjściu.

t-1 snipped-for-privacy@todlaspamu.pl napisał(a):

Piny 11 i 12 są na jednym porcie więc można ich stan zmienić jednocześnie.

Jest, jesli tylko piny sa na jednym porcie. Zmiana stanu to AND lub OR na masce, a nie trzeba przeciez maskowac tylko jednego bitu.

W dniu 05.09.2019 o 18:34, Michal M. Lechanski pisze:

Dziękuję za wszystkie odpowiedzi, znów się czegoś nauczyłem.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required