Skocz do zawartości

Przerwania, a ponowne sprawdzenie stanu przycisku.


SOYER

Pomocna odpowiedź

23 minuty temu, ethanak napisał:

Przypominam: ośmiobitowy procek taktowany megahercem...

Trudno się dziwić że część początkujących programistów ma problemy z wydajnością swoich systemów skoro od początku nauki  kody źródłowe są nie kończącym się spaghetti z mnóstwem delayów. A przecież to tak proste do rozwiązania, zwłaszcza że arduino na dzień dobry daje funkcję millis i nie trzeba kombinować z konfiguracją timera. Kiedyś to było... Wyciąganie ostatnich potów z posiadanego sprzętu, teraz to nima czasów. <img/nosacz>

Link do komentarza
Share on other sites

12 minut temu, SOYER napisał:

daj linka albo twórcę...

Musisz poczekać do jutra...

 

Chociaż nie: sprawdź pierwszy wynik w Google. Wiesz, to taka fajna strona gdzie coś wpisujesz a ona pokazuje gdzie to znaleźć 😉

Link do komentarza
Share on other sites

23 minuty temu, _LM_ napisał:

przecież to tak proste

Wiesz - ja zaczynałem od Spectrum 16 i C16 (Odry nie liczę), a i na VC20 zdarzyło mi się po pijanemu jakąś grę napisać 🙂 To była naprawdę dobra szkoła wyciskania wszystkiego ze sprzętu...

A delay() jest też dla ludzi. Podobnie jak goto i wódka. Tylko trzeba wiedzieć jak się tego używa 🙂

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

A że wódka jest przydatna, niech o tym świadczy pewna historia.

Za czasów pracy w teatrze miałem bardzo dobrego kolegę aktora. Aktor lalkarz raczej z tej wyższej półki, niestety - miał problem z jedną piosenką, nie potrafił wejść w tonację. Stwierdziłem że go nauczę. Kupiliśmy flaszkę, postawiłem dwa kieliszki i magnetofon i kazałem mu zaśpiewać. Oczywiście nie wyszło. Nalałem sobie kieliszeczek, wypiłem, kolega nieśmiało zapytał "a dla mnie?" - dowiedział się, że dostanie jak zaśpiewa.

Następnego dnia na próbie pani reżyser powiedziała "posłuchajcie, jak Mirek ładnie śpiewa, czy to takie trudne?"

Wódka jest czasami potrzebna 🙂

goto i delay też...

Link do komentarza
Share on other sites

(edytowany)
  ITimer1.attachInterrupt(100000, wciskanie);

Po kolei:

#include <ESP32TimerInterrupt.h>

ESP32Timer ITimer1(1);
uint8_t flaga1=0;

const uint8_t ilosc = 2;

Potem w Setup ta linijka którą wstawiłem jako pierwszą

wreszcie na samym dole:

void IRAM_ATTR wciskanie(){
  if (digitalRead(TOUCH_1)){
    if (flaga1 < ilosc){
      flaga1++; // liczymy dotyk
    }
  }
  else if(flaga1 != ilosc){
     flaga1 = 0; // to był impuls
  }
}

wywala błąd:

C:\Users\user\AppData\Local\Temp\arduino_modified_sketch_385575\__OK_DOMOFON_OSTATNIA_WERSJA_POPRAWKI_DZWONIENIA.ino: In function 'void setup()':
__OK_DOMOFON_OSTATNIA_WERSJA_POPRAWKI_DZWONIENIA:202:35: error: 'wciskanie' was not declared in this scope
   ITimer1.attachInterrupt(100000, wciskanie);



exit status 1
'wciskanie' was not declared in this scope

Jeśli skasuję tą linijkę w SETUP to kompiluje się bezproblemowo, więc to raczej nie problem z nawiasami.

??

Edytowano przez SOYER
Link do komentarza
Share on other sites

A co się stanie, jeśli prawidłowo zadeklarujesz funkcję przed jej użyciem?

Owszem, builder Arduino robi parę rzeczy za Ciebie, ale nie wszystko. Zapomnij o udogodnieniach dla pacanów i potraktuj plik .ino jak normalny plik źródłowy C++. 

Po prostu funkcja musi być zdeklarowana (niekoniecznie zdefiniowana) przed pierwszym wystąpieniem w kodzie. Jeśli definicję masz na końcu to się nie dziw, że kompilator zanim do niej dolezie to jej nie zna...

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.