• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 1 głosów - średnia: 5
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się.
#37
(02-09-2018, 12:36)kaczakat napisał(a): Dla Arduino UNO są tylko na pinach 2 i 3. Jak Pan może polecić jakąś "arduinową" funkcję/bibliotekę do PCINT to proszę od razu wrzucać i opisać jakie są ograniczenia, bo to nie jest taki sam mechanizm.

Gotowej biblioteki nie znam, nie będę szukał, bo dla mnie praktycznie wszystko co Arduinowe jest złe. Zresztą, po co biblioteka dla kilu linijek kodu? Mogę dać gotowce na "normalne" AVR, Mega328 nie używam, bo prawie do niczego sensownego się nie nadaje. Podążając za nota katalogową:
W PCICR ustawiamy zezwolenie na przerwania od grupy GPIO (PCIE2, PCIE1, PCIE0)
W PCMSK0, PCMSK1, PCMSK2 ustawiamy maskę GPIO, które mają wywołać przerwanie.
Deklarujemy wektor przerwania
Kod:
ISR( PCINT0_vect )
{

}

i/lub PCINT1_vect, PCINT2_vect

Przerwanie takie reaguje na oba zbocza i jeśli jest więcej niz jedno GPIO trzeba programowo określić, które wejscie wywołało przerwanie ewentualnie, które zbocze.

Ot i cała filozofia. Używałem tego bardzo często, naturalnie należy zapomnieć (jeśli chcemy określać zbocze czy nr wejścia a impuls przerwania jest krótki) o zawieszaniu przerwań na zbyt długi czas (jak to robi "genialna" biblioteki onewire i podobne, jakby nie można do tego użyć USART).
Pomagam (nie prowadzę kursów), tylko, gdy w poście załączone są niezbędne materiały (kod, schemat) a pytający zna podstawy.

Kod z Delay i/lub bez WDT to nie kod, to DEMO!
Kod wymaga komentarzy!




 
Odpowiedź
  


Wiadomości w tym wątku
RE: Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. - przez es2 - 02-09-2018, 19:14

Skocz do:


Przeglądający: 1 gości