diff --git a/lib/CPUs/MIPS/bsp/examples/testbench.c b/lib/CPUs/MIPS/bsp/examples/testbench.c index 224191b..3a64e37 100644 --- a/lib/CPUs/MIPS/bsp/examples/testbench.c +++ b/lib/CPUs/MIPS/bsp/examples/testbench.c @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include "libsys.h" #define NO_ERROR 0x00000000 @@ -22,11 +24,14 @@ void handler3(void) { volatile UINT32 *pUART_stat = (UINT32*)sys_uart_stat; volatile UINT32 *pUART_data = (UINT32*)sys_uart_data; + volatile UINT32 *pLED = (UINT32*)sys_led_port; while((0x10 & *pUART_stat)) { buffer[i] = (char)*pUART_data; + *pLED = buffer[i]*buffer[i]; i = (i+1)%sizeof(buffer); + } } @@ -312,7 +317,8 @@ int main (void) time_t curr_date; struct tm *pDate, date; UINT32 start, end; - char sel; + char sel[80]; + struct timeval time_sec; UINT8 *ram8 = NULL; UINT16 *ram16 = NULL; @@ -522,9 +528,12 @@ int main (void) sputs("\r\n"); printf("Datum und Uhrzeit setzen? [j/N]: "); - scanf("%c", &sel); - if (toupper(sel) == 'J') + scanf("%s", sel); + if (toupper(sel[0]) == 'J') { + do + { + printf("Datum\n"); printf("Jahr : "); scanf("%d", &date.tm_year); printf("Monat : "); @@ -532,7 +541,30 @@ int main (void) printf("Tag : "); scanf("%d", &date.tm_mday); - printf("Wir haben heute den %d. %d. %d\n", date.tm_mday, date.tm_mon, date.tm_year); + printf("Uhrzeit\n"); + printf("Stunde : "); + scanf("%d", &date.tm_hour); + printf("Minute : "); + scanf("%d", &date.tm_min); + printf("Sekunde : "); + scanf("%d", &date.tm_sec); + + date.tm_year -= 1900; + date.tm_mon -= 1; + time_sec.tv_sec = mktime(&date); + time_sec.tv_usec = 0; + settimeofday(&time_sec, NULL); + + printf("Datum\n"); + curr_date = time(NULL); + pDate = gmtime(&curr_date); + puts(asctime(pDate)); + printf("\nOK? [J/n]: "); + scanf("%s", sel); + printf("sel=%d\n", (int)sel[0]); + + + } while(toupper(sel[0]) == 'N'); } interrupt_enable(3);