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


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Jak ustawić funkcje czasu wyjścia na określony i off
#27
(06-07-2019, 13:55)Robson Kerman napisał(a): Ticker jest namillisach i microsach.
Potwierdzam, bo znalazłem https://github.com/sstaub/Ticker/blob/master/Ticker.cpp

(06-07-2019, 13:55)Robson Kerman napisał(a): Jak już szukać rozwiązania w dostępnych bibliotekach, to proponuję taką korzystającą z przerwań. Np. https://github.com/devalfrz/TimerOne
Tez miałem zaproponować timerOne. Pozwolę sobie na mały wywód na jej temat i AVR.
TimerOne zabiera jedyny zaawansowany timer i to nie tylko w Mega328. Większość AVRmega, nawet jak ma 4 czy 6 timerów, to tylko Timer1 jest 16-bit, pozostałe 8-bit. Tylko nieliczne AVR, np Mega1281 mają więcej timerów 16-bit.
Co robi tak naprawdę TimerOne? Oto jej kod: https://github.com/PaulStoffregen/TimerO...merOne.cpp
Jeśli przerwania, mają wykonywać się co ok 1ms, wystarczy uruchomić przerwania od porównania timera0. Dostępne są takie dwa przerwania. Daje to możliwość generowania przerwań co ok 500us. Jeśli potrzeba częściej, można zrobić np tak:
Kod:
ISR(TIMER0_COMPA_vect)
{
byte t = OCR0A;
  if( t <= 0x40) OCR0A = 0x80;
  else if ( t <= 0x80) OCR0A = 0xC0;
  else if ( t <= 0xC0) OCR0A = 0xFE;
  else OCR0A = 2;
  Timer0.isrCallback();
}
Co spowoduje generowanie przerwać co ok 250us. Podobnie można generować przerwania z inną częstotliwością. Należy unikać przerwania przy wartości max i min bo przy zmianie z FF na 0 jest generowane przerwanie OVR.

Jak wiec widzicie panowie, wszystko w Arduino jest spie...
Ticker to zabawka, nakładka na millis, niczym Windows 3.xx, który z systemem operacyjnym nie ma wiele wspólnego, tak jak Arduino z IDE a AVR z uC.

Nawet proste zadania ciężko na Arduino realizować, używając bibliotek Arduino zwłaszcza z AVR.
Wymagania użytkowników rosną. Kiedyś wystarczyło aby zegarek wyświetlał czas, teraz ma się synchronizować z NTP i odtwarzać MP3, a AVR jest do tego za słaby.


Jak patrzę teraz na AVR z punktu widzenia ARM, to wygląda on jak kiedyś 8051 z punktu widzenia AVR.
Technika idzie do przodu i trzeba się do tego dostosować.

Choć potrafię wiele wycisnąć z AVR :
- http://avt.4ra.pl/viewtopic.php?id=12
- http://avt.4ra.pl/viewtopic.php?id=2
to wymaga to dużego nakładu pracy, więc po co się męczyć, jak wszystkie te zadania łatwiej, co ważne TANIEJ, zrealizować na nowoczesnych uC.?
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Jak ustawić funkcje czasu wyjścia na określony i off - przez es2 - 06-07-2019, 14:24

Skocz do:


Przeglądający: 1 gości