• 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
ws2812 - przyciski przełączające animacje(jak ?)
#5
(16-06-2019, 13:31)Jakub428 napisał(a): Pracuję teraz na płytce genuino 101 więc na dość mocnej płytce
Co z tego, że płytka mocna jak w kodzie masz:
(16-06-2019, 13:31)Jakub428 napisał(a):
Kod:
     delay(wait);
i para idzie w gwizdek.

Jak używasz delay (bez RTOS, w którym delay nie "zawiesza" CPU i inne zadania działają) to czy masz 8MHz 8-bit, czy 2GHz 64-bit, przyrostu prędkości nie zobaczysz. Aby zrozumieć mój przekaz obejrzyj filmy:
Adruino UNO - AVR (8-bit) 16MHz
ARM (32-bit) STM32F411 60MHz
Jak widać różnica jest niewielka. Powód? Nie skorzystano z możliwości sprzętowych ARM, natomiast tu:
ARM (32-bit) STM32F411 60MHz
wykorzystano DMA, różnica jest znaczna (10..13 razy szybciej).

Na koniec małe porównanie obu uC:
Szescian_3D_ARM_vs_AVR
Na AVR widać operację kasowania ekranu, na ARM dzieje się to na tyle szybko (ok 23ms), że oko tego nie zauważa.

Na poniższym filmie, AVR zmienia rozmiar prostokąta co 10 a nie co 1 piksel przy każdym odświeżeniu ekranu, bo trzeba by dłuuuugo czekać na wykonanie animacji.
Szescian_3D_i_animowane_tlo
a i tak wygląda żałośnie. Tak samo żałośnie by wyglądała na ARM gdyby nie wykorzystać jego potencjału. Ty nie wykorzystujesz potencjału uC, bo używasz delay.
 
Odpowiedź
  


Wiadomości w tym wątku
RE: ws2812 - przyciski przełączające animacje(jak ?) - przez es2 - 16-06-2019, 16:50

Skocz do:


Przeglądający: 1 gości