Open carlosdelfino opened 4 years ago
Esta proposta pode ser implementada juntamente com o que foi proposto em #2
O código abaixo, deve ser revisto e fica sugerido a escrita de uma nova função digitalWrite para uso com o Arduino Mega, alocando duas portas consecutivas e inteiras para manipular os LEDs
O Código para digitalWrite
pode ser optimizado para uso especifico neste projeto em diversos detalhes, como remoção da verificação se o PWM está ativo, a segmentação caso se use word (2 bytes) para se obter a porta correta já que não serão consecutivas, e referenciamento próprio da porta com base no nosso mapa de LEDs.
Talvez até mesmo adaptar e gerar uma nova versão das funções disponíveis em
https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/wiring_digital.c
Hoje é usado um array de booleanos para representar o estado dos LEDs em passo do beat, o ideal para economizar memória é usar um byte para até 8 LEDs ou uma word (2 bytes para até 16 LEDs)
https://github.com/carlosdelfino/Metronomo-Visual/blob/0d4cf65f5c6c8cb213f73792927eed524c182ee1/algoritimos.h#L21-L54