boolean OV7670::begin(void) { // setup parrallel interface. // fastPinMode(_WEN, OUTPUT); // WEN fastDigitalWriteLow(_WEN); fastPinMode(_VSYNC, INPUT); // VSYNC fastPinMode(_HREF, INPUT); // HREF fastPinMode(_RRST, OUTPUT); fastDigitalWriteHigh(_RRST); // RCLK 1MHz by TC2 fast-PWM with TOP=OCRA fastPinMode(_RCLK, OUTPUT); fastDigitalWriteHigh(_RCLK); fastPinMode(_OE, OUTPUT); fastDigitalWriteHigh(_OE); #ifdef DEBUG Serial.println(_HREF, HEX); Serial.println(_RRST, HEX); Serial.println("Ok?"); while(1); #endif Serial.println("pin modes have been set."); resetRegisters(); // reset all registers Serial.println("registers reset."); return writeRegisterValues(REGCONF_QVGA_RGB565) && writeRegisterValues(REGCONF_COLOR_SETTING); }
void go(void) { while (1) { trace(); if (S != 0) { printf("Program is done\n\n"); break; } } resetRegisters(); displayRegisters(); }
int main(void) { char command; /*display menu*/ printf("By: Dennis Konieczek and Nikolas Spendik\n"); printf("d\t dump memory\n"); printf("g\t go - run the entire program\n"); printf("l\t load a file into memory\n"); printf("m\t memory modify\n"); printf("q\t quit\n"); printf("r\t display registers\n"); printf("t\t trace - execute one instruction\n"); printf("w\t write file\n"); printf("z\t reset all registers to zero\n"); printf("?, h\t display list of commands\n"); /*prompt for command and execute corresponding task*/ while (1) { printf("\n>>Enter command: "); scanf(" %c", &command); switch (command) { case 'd': case 'D': printf("\n>>Enter offset: "); scanf(" %x", &offset); printf("\n>>Enter length: "); scanf(" %x", &length); dumpMemory(&memory, offset, length); break; case 'g': case 'G': go(); break; case 'l': case 'L': LoadFile(&memory, sizeof(memory)); break; case 'm': case 'M': printf("\n>>Enter starting address: "); scanf(" %x", &offset); memoryModify(&memory, offset); break; case 'q': case 'Q': printf("Exiting... \n"); exit(0); break; case 'r': case 'R': displayRegisters(); break; case 't': case 'T': trace(); break; case 'w': case 'W': WriteFile(&memory); break; case 'z': case 'Z': resetRegisters(); break; case '?': case 'h': case 'H': help(); break; default: printf("!wrong command!"); break; } } printf("\n"); return 0; }