Пример #1
0
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);

}
Пример #2
0
void go(void) {

	while (1) {
		trace();
		if (S != 0) {
			printf("Program is done\n\n");
			break;
		}
	}


	resetRegisters();
	displayRegisters();
}
Пример #3
0
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;
}