Skocz do zawartości

Marooned

Użytkownicy
  • Zawartość

    873
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    24

Wszystko napisane przez Marooned

  1. Patent ze słoikami pamiętam z Młodego Technika [ktoś to jeszcze pamięta? ] - jakoś tak między '80 a '90 go opisywali
  2. Jeszcze wracając do pinów i zapisu bitowego. Można też stosować makra, które są zamieniane przez preprocesor, więc jeszcze przed kompilacją i uproszczają składnię i pisanie bez zwiększania złożoności programu. Poniższe trzy linijki są tożsame - sprawdzenie bitu o indeksie 3 (czyli czwartego): bit3 = PINA & 0x8; //od 0 do 9 nie ma znaczenia, czy piszemy dziesiętnie czy szesnastkowo bit3 = PINA & 1<<3; bit3 = PINA & _BV(3); Każda z tych linijek wygeneruje dokładnie taki sam kod, a wg mnie ostatnia linijka jest najczytelniejsza - widać, że chodzi nam o bit nr 3. Sprawa druga - zwracana wartość. Pisząc PINA & _BV(3) wykonujemy operację bitową AND na całym porcie - a jak wiemy, AND zwraca "1" tylko, jeśli oba operandy są równe "1". Zatem cokolwiek by nie było na innych bitach, po "& _BV(3)" zostają nam same zera na pozycjach: 7654210 oraz oryginalny bit na pozycji 3. Ponieważ 2^3 = 8, to w wyniku możemy otrzymać tylko dwie wartości - 0 (dla bitu=0) lub 8 (dla bitu=1). Teraz zależnie do czego nam ta wartość mamy dwie opcje. Jeśli chcemy przetestować czy było tam "0" czy "1", to jak już wspomniano, w C 0==false, cokolwiek innego==true. Zatem if (PINA & _BV(3)) {//bit ustawiony} else {//bit wyzerowany} pięknie zadziała. Jeśli natomiast mamy silną potrzebę w wyniku posiadania wartości "0" lub "1", to są dwa sposoby: Podany wyżej: wynik = PINA & _BV(3) ? 1 : 0; lub ciut szybszy a na pewno mniej bajtów zajmujący: wynik = (PINA & _BV(3)) >> 3; czyli bit na pozycji 3 przesuwamy o 3 w prawo, czyli wyląduje na pozycji 0 dając w wyniku "0" lub "1". Mam nadzieję, że to dogłębne wyjaśnienie się przyda
  3. A czy ujednolicony regulamin nie spowoduje wiejącej nudy, że zawsze będą wygrywali ci sami, bo zmontują najlepszą konstrukcję dopasowaną do jednego regulaminu? Czy dzięki różnorodności regulaminów na różnych zawodach różne ekipy mają różne szanse i jest ciekawiej? Bo jedni mają cięższą konstrukcję, inni wyższą.. i zależnie od ustaleń organizatora raz jedni raz drudzy mają przewagę. Tak bardzo mocno gdybam, jeszcze nie mam doświadczenia w takich wydarzeniach.
  4. Też mam takie 3 od śrubek (kupione ze 20 lat temu w jakimś wysyłkowym) - śrubki przerzucone do jednej i dwie wolne - czyli 32 szufladeczki (każda jeszcze dzielona na pół) na elektronikę. Z przodu nalepki z wartościami wedle uznania. Przeźroczyste, więc widać co w środku leży.Schludnie, wygodnie i wszystko pod ręką
  5. Szybkość nie robi na mnie takiego wrażenia jak mechanika i element wykonawczy - fajne rozwiązanie.
×
×
  • Utwórz nowe...