Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Criar movimento suave com bitshift operators

$
0
0
Bom dia. Hoje de manhã ainda estive uns minutos a pensar no que estaria mal e dei conta que pelo menos, as declarações das variáveis que tinha dentro da função void loop(), não podiam lá estar, pois esta função é executada "eternamente", portanto as variáveis estavam a voltar a zero por cada vez que esta função é excutada! Alterei também a ordem do código dentro da função void loop() para ver se evitava alguns problemas. Tenho que testar o código novamente no LCD para ver se já dá alguma coisa! #include <time.h> #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 10, 9, 8, 7); uint8_t memOffset = 0, dir = 1, col = 0, lin = 0; byte customChar[8] = {0}; void CreatePrintCustomChar(uint8_t memOffset, byte* customChar){ for(uint8_t i = 0; i < 8; i++) customChar[i] = rand() % 32; lcd.createChar(memOffset, customChar); } void setup(){ srand(time(NULL)); Serial.begin(9600); lcd.begin(20, 4); lcd.setCursor(lin, col); } void loop(){ for(uint8_t i = 0; i < 80; i++){ lcd.setCursor(lin, col); Serial.println("Linha:"); Serial.println(lin); Serial.println("Coluna:"); Serial.println(col); Serial.println("----------"); CreatePrintCustomChar(memOffset, customChar); if( !(col % 19) && lin == 3){ col = 0; lin = 0; }else if( !(col % 19) ){ col = 0; lin++; }else col++; if(memOffset < 7 && dir) memOffset++; else if(memOffset > 1 && !dir) memOffset--; else dir ^= 1; Serial.println("memOffset:"); Serial.println(memOffset); } }

Viewing all articles
Browse latest Browse all 11336

Trending Articles