Skocz do zawartości

slon

Użytkownicy
  • Zawartość

    93
  • Rejestracja

  • Ostatnio

Reputacja

53 Bardzo dobra

O slon

  • Ranga
    4/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Te dwa ostatnie wpisy są jak najbardziej konstruktywne i dają trochę do myślenia. 8 razy więcej względem zmiennych byte? actual_time to unsigned long begin_time to też unsigned long więc nie? wychodzi że nigdy. Poniżej 1/4s to mógł by być byte? jest od 0 do 255. Jeśli więcej niż minuta to można by zliczać przepełnienia w drugiej zmiennej byte a wynik podawać w zmiennej unsigned int? To takie odpowiedzi osoby , która co prawda studia skończyła ale nie związane z informatyką (ale jeden fakultet był) więc mogą być błędne.
  2. Jak w inny sposób zliczać wciśnięcie przycisku w tym przerwaniu (dalej doprecyzuje): ISR(PCINT0_vect) { for ( i=0; i<4; i++) { if (bitRead(PINB,i)) { buttonPress++; if ((button[i]==losowyPin) && bitRead(PIND,2+i)) { score++; bitClear(PORTD, 2+i); } if(!buttonPress) buttonPressBuf++; if(!score) scoreBuf++; } } } poniżej zmienne globalne volatile byte button[4] = {2,3,4,5}; volatile byte buttonPress = 0; volatile byte buttonPressBuf = 0; volatile byte losowyPin =2; volatile byte score =1; volatile byte scoreBuf =0; unsigned int buttonPressSum; ostatnia zmienna znajduje się w loop(); i zlicza ile razy wciśnięto przycisk buttonPressSum = (buttonPress + (buttonPressBuf * 256)); Czy można zliczać ile razy wciśnięto przycisk bez dodatkowej zmiennej buttonPressBuf , która zlicza przepełnienia? i analogicznie ze zmienną score.
  3. @wojtekizk Bardzo ciekawy opis i bogaty merytorycznie. Podobnie jak post o bibliotece timers. Przyjemnie się czyta takie wpisy bo można z nich wydobyć ciekawe informacje.
  4. Już dodałem plik keywords.txt do katalogu biblioteki i jest kolorowo
  5. Fajny projekt. Był by jeszcze ciekawszy gdyby faktycznie był na arduino nano. Natomiast co do ipli i smatTV to w moim LG serii LB czyli już taki trochę leciwy mam iple, iple sport, iple film (ale kiedy to było instalowane to nie pamiętam).
  6. Użyłem pierwszego kodu z biblioteką digitalWriteFast. Wynik: 198880 a więc ~18 razy szybciej od standardowego digitalWrite aczkolwiek ten drugi kod i tak jest szybszy. Takie szybkie pytanie odnośnie bibliotek. Jak uzyskać kolorowanie składni w Arduino IDE tak aby digitalWriteFast wyglądał jak digitalWrite?
  7. Jak dla mnie w zupełności wystarczy. Dzięki.
  8. Nie spodziewałem się , że temat tak się rozwinie aczkolwiek bardzo jestem z tego zadowolony. Więc wracając do przerwań. ISR(PCINT0_vect) Ja cały czas myślę o tych przerwaniach i tu jak widać digitalWrite występuję. Jaka jest różnica między Pin- change Interrupt a External Interrupt od strony programowej ? Nie chodzi mi o to , że jedne są na wszystkich pinach arduino a pozostałe na dwóch.
  9. Dziękuje za odpowiedzi. Czy taki zapis z punktu widzenia istoty przerwania będzie poprawny ? (pomijając, że można by użyć bitSet() lub PORTB) ISR(PCINT0_vect) { if(digitalRead(12) == HIGH) { liczynik=1; digitalWrite(13, HIGH); } else { digitalWrite(13, LOW); } }
  10. Dlaczego? Uzasadnij w odniesieniu do tego kodu który podałem (nie do projektu) nie. Ok.
  11. Ok dzięki. Trzy wektory po jednym dla każdej z grup pinów
  12. A czy wykorzystanie przerwań nie było by dobrym pomysłem? void setup() { Serial.begin(9600); bitSet(PCICR, PCIE0); // enable pin change interrupt bank 0 bitSet(PCMSK0, PCINT4); // enable pin change interrupt on PCINT4/D12 pinMode(12,INPUT_PULLUP); } void loop() { } ISR(PCINT0_vect) { if(digitalRead(12) == HIGH) { Serial.println("Button OFF"); } else { Serial.println("Button ON"); } } Dla jednego pinu działa. A jak było by ze wszystkimi?
  13. Kto odpowie na pytanie : Jaki mamy rok ? (nie chodzi o 2019). Odpowiedź zapisz w 3 linijkach (może być mniej lub więcej).
×
×
  • Utwórz nowe...