-
1. Data: 2019-09-05 19:34:23
Temat: Jakie opóźnienie
Od: "Michal M. Lechanski" <m...@d...eu>
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ę.
--
Michał
-
2. Data: 2019-09-05 20:49:02
Temat: Re: Jakie op??nienie
Od: a...@m...uni.wroc.pl
Michal M. Lechanski <m...@d...eu> wrote:
> 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?
Kilkadziesiat taktow zegara. digitalWrite zawiera sporo kodu
jak na tak prosta operacje i wyknoanie trwa. Roznice HIGH/LOW
beda stosunkowo male.
> 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.
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.
--
Waldek Hebisch
-
3. Data: 2019-09-05 20:49:03
Temat: Re: Jakie opóźnienie
Od: t-1 <t...@t...pl>
W dniu 2019-09-05 o 19:34, Michal M. Lechanski pisze:
> 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ę.
>
Tu jest dyskusja na temat:
https://forum.arduino.cc/index.php?topic=41046.0
Piszą 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.
-
4. Data: 2019-09-05 23:09:27
Temat: Re: Jakie opóźnienie
Od: "Grzegorz Niemirowski" <g...@g...net>
t-1 <t...@t...pl> napisał(a):
> 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.
Piny 11 i 12 są na jednym porcie więc można ich stan zmienić jednocześnie.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
-
5. Data: 2019-09-09 19:08:50
Temat: Re: Jakie opóźnienie
Od: q...@t...no1 (Queequeg)
t-1 <t...@t...pl> wrote:
> Programowego sposobu na jednoczesną zmianę stanów wyjść raczej nie ma.
Jest, jesli tylko piny sa na jednym porcie. Zmiana stanu to AND lub OR na
masce, a nie trzeba przeciez maskowac tylko jednego bitu.
--
https://www.youtube.com/watch?v=9lSzL1DqQn0
-
6. Data: 2019-09-09 21:13:07
Temat: Re: Jakie opóźnienie
Od: "Michal M. Lechanski" <m...@d...eu>
W dniu 05.09.2019 o 18:34, Michal M. Lechanski pisze:
> Nie bardzo wiem o co
> pytać google.
>
> Podpowiecie? Z góry dziękuję.
Dziękuję za wszystkie odpowiedzi, znów się czegoś nauczyłem.
--
Michał