#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "SdFat.h"
SdFat SD;
File file;
Adafruit_SSD1306 OLED(128, 64, &Wire, -1);
void setup() {
OLED.begin(SSD1306_SWITCHCAPVCC, 0x3C);
OLED.clearDisplay();
OLED.display();
Serial.begin(115200);
Serial.println("Initializing SD card...");
if (!SD.begin(15)) {
Serial.println("COULD NOT INITIALIZE SD CARD");
return;
}
Serial.println("Loading file...");
file = SD.open("video.rawr", FILE_READ);
if (!file){
Serial.print("COULD NOT LOAD FILE");
return;
}
Serial.println("Done.");
while (1){
displayFrame();
}
}
void logger(char* message, ...)
{
char tmpPrintfBuffer[4096];
sprintf(tmpPrintfBuffer, message);
Serial.write(tmpPrintfBuffer);
}
void loop() {
// Do Nothing...
}
int frame=0;
void displayFrame(void)
{
for (int y = 0; y < 64; y+=2){
for (int x = 0; x < 128; x+=4){
switch(file.read()) {
case 0x2E:
OLED.drawLine(x,y,x+4, y, WHITE);
OLED.drawLine(x,y+1,x+4, y+1, WHITE);
break;
case 0x20:
OLED.drawLine(x,y,x+4, y, BLACK);
OLED.drawLine(x,y+1,x+4, y+1, BLACK);
break;
}
}
}
OLED.display();
}