Skocz do zawartości

Zagnieżdżona pętla IF wykonująca się przez ściśle określony czas


Pomocna odpowiedź

Bo to już kolejna wersja... Faktycznie nie najlepsza. Mój błąd. Ale może zadam inne pytanie. Czy w ogóle ten schemat, który pokazałem wcześniej, jest możliwy do realizacji za pomocą if'ów, czy jest jakaś prostsza metoda, której nie dostrzegam?

Ja już przestałem rozumieć.

Pokazałem Ci jak to zrobić.

Nie bo nie.

Pytałem czy umiesz.

Odpowiedziałeś "tak" - ale nie zauważyłem abyś to zastosował.

Może pójdziesz na grzyby?

Śnieg spadł, grzybów nie ma.

Próbowałem użyć "for". Nie zadziałało. Czy Ty spojrzałeś na pełen schemat programu? Od pola "start" do pola "koniec"? Bo może się nie zrozumieliśmy? Pomiar trwający 3 ms to tylko ułamek całości. I tu jest problem, bo pomiar albo się kończy na amen, albo olewa te 3 ms.

Jak masz zje...ny start, to koniec możesz sobie smalcem wysmarować.

Wybacz, ale próbuję Ci to wytłumaczyć, ale chyba nadajemy na innej częstotliwości.

Jak chcesz wykonywać coś wielokrotnie przy pomocy if-a? To tylko na schemacie algorytmu wygląda jak if, bo jest poziomym rombem. Wszelkie nawroty sterowania (te strzałki w górę) realizujesz za pomocą jednej z kilku instrukcji pętli: for, while lub do.

W Twoim przypadku, skoro warunek sprawdzasz na początku, to powinno być while. Gdybyś się nad tym chwilę zastanowił to byś zauważył, że warunkiem wyjścia z pętli wypisywania jest dwukrotny (pod rząd) negatywny test wielkości napięcia który możesz sprawdzać na końcu (wtedy pętla do). Wystarczy prosty licznik wyników negatywnych. Czy tak miało być?

A może inaczej: opisz własnymi słowami co chcesz zrobić. Nie patrz na rysunek bo być może się na czymś zafiksowałeś, tylko opisz jak to ma działać. Pamiętaj, że wypisywanie czegoś przez Serial nie jest bezkarne. Gdy tylko zapełni się bufor (po kilkudziesięciu znakach) wysłanie każdego kolejnego znaku to mogą być milisekundy. Jeśli wszystko ma trwać 3ms, to możesz mieć 1000% błędu pomiaru czasu. Już Ci kiedyś pisałem: oddziel akwizycję od obróbki i wypisywania wyników bo polegniesz na komunikacji.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...