Exemplo n.º 1
0
Arquivo: main.c Projeto: 1i7/snippets
int main(void)
{
    uint8_t addr1, addr2; /* i2c addresses */
    uint16_t x, y;
    char buf[128]; /* temporary string buffer for various stuff */

    /* uart stuff */
    char rcvbuf[32], c;
    uint8_t rcvbufpos = 0;

    init_board();
    ov7670_init();

    printf("Camtest says hi!\n");
    printf("System clock: [%d]\n", SystemCoreClock);

    UART0_PrintString("Camtest says hi!\r\n");
    while (1) {
        c = UART0_Getchar();
        if (c == EOF) {
            continue;
        } else if ((c >= 32) && (c <= 126)) {
            rcvbuf[rcvbufpos++] = c;
        } else if (c == 13) {
            rcvbuf[rcvbufpos++] = 0;
            rcvbufpos = 0;
            if (strcmp(rcvbuf, "getimage") == 0) {
                ov7670_readframe();
                UART0_PrintString("OK\r\n");
            } else if (strlen(rcvbuf) >= 9 &&
                    strncmp(rcvbuf, "getline ", 8) == 0) {
                y = atoi(rcvbuf + 8);
                for (x = 0; x < 160; x ++) {
                    UART0_Sendchar(qqvgaframe1[x + (y * 160)]);
                    UART0_Sendchar(qqvgaframe2[x + (y * 160)]);
                }
            } else if (strlen(rcvbuf) == 9 &&
                    strncmp(rcvbuf, "regr 0x", 7) == 0) {
                addr1 = strtoul(rcvbuf + 7, NULL, 16);
                sprintf(buf, "0x%.2x 0x%.2x\r\n", addr1, ov7670_get(addr1));
                printf("%s", buf);
                UART0_PrintString(buf);
            } else if (strlen(rcvbuf) == 14 &&
                    strncmp(rcvbuf, "regw 0x", 7) == 0) {
                strncpy(buf, rcvbuf + 7, 2);
                buf[2] = 0;
                addr1 = strtoul((char *) buf, NULL, 16);
                addr2 = strtoul(rcvbuf + 12, NULL, 16);
                ov7670_set(addr1, addr2);
                sprintf(buf, "0x%.2x 0x%.2x\r\n", addr1, addr2);
                UART0_PrintString(buf);
            } else {
                UART0_PrintString("ERR\r\n");
                printf("Unknown command: [%s]\n", rcvbuf);
            }
        }
    }

    return 0;
}
Exemplo n.º 2
0
static void xtoa(unsigned long x, const unsigned long *dp)
{
    char c;
    unsigned long d;
    if(x) {
        while(x < *dp) ++dp;
        do {
            d = *dp++;
            c = '0';
            while(x >= d) ++c, x -= d;
            UART0_Sendchar(c);
        } while(!(d & 1));
    } else
        UART0_Sendchar('0');
}
Exemplo n.º 3
0
// ***********************
// Function to prints the string out over the UART
void UART0_PrintString(char *pcString)
{
	int i = 0;
	// loop through until reach string's zero terminator
	while (pcString[i] != 0) {	
		UART0_Sendchar(pcString[i]); // print each character
		i++;
	}
}
Exemplo n.º 4
0
void tprintf(char *format, ...)
{
    char c;
    int i;
    long n;
    
    va_list a;
    va_start(a, format);
    while((c = *format++)) {
        if(c == '%') {
            switch(c = *format++) {
                case 's':                       // String
                    UART0_PrintString(va_arg(a, char*));
                    break;
                case 'c':                       // Char
                    UART0_Sendchar((char) va_arg(a, int));
                    break;
                case 'i':                       // 16 bit Integer
                case 'u':                       // 16 bit Unsigned
                    i = va_arg(a, int);
                    if(c == 'i' && i < 0) i = -i, UART0_Sendchar('-');
                    xtoa((unsigned)i, dv + 5);
                    break;
                case 'l':                       // 32 bit Long
                case 'n':                       // 32 bit uNsigned loNg
                    n = va_arg(a, long);
                    if(c == 'l' &&  n < 0) n = -n, UART0_Sendchar('-');
                    xtoa((unsigned long)n, dv);
                    break;
                case 'x':                       // 16 bit heXadecimal
                    i = va_arg(a, int);
                    puth(i >> 12);
                    puth(i >> 8);
                    puth(i >> 4);
                    puth(i);
                    break;
                case 0: return;
                default: goto bad_fmt;
            }
        } else
bad_fmt:    UART0_Sendchar(c);
    }
Exemplo n.º 5
0
int main() 
{
	UART0_Init(57600);
	UART0_PrintString("Hello, world!\n");

	initLed();
	while (1) {
		toggleLed();
		UART0_Sendchar('+');
		wasteSomeTime(500);
	}

	return 0;
}
Exemplo n.º 6
0
void tinysh_char_out(unsigned char c)
{
	UART0_Sendchar(c);
}
Exemplo n.º 7
0
static void puth(unsigned n)
{
    static const char hex[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    UART0_Sendchar(hex[n & 15]);
}