int vfprintf(char *format, va_list arg) { int flag = 0, ret = 0; const char *p = format; while (*p) { switch (*p) { case '%': if (flag) { flag = 0; put_c(*p); ret++; } else { flag = 1; } break; case 'd': if (flag) { char buf[16]; flag = 0; itoa(va_arg(arg, int), buf, 10); put_s(buf); ret += strlen(buf); } else { put_c(*p); ret++; } break; case 'x': if (flag) { char buf[64]; flag = 0; itoa(va_arg(arg, int), buf, 16); put_s(buf); ret += strlen(buf); } else { put_c(*p); ret++; } break; case 'b': if (flag) { char buf[16]; flag = 0; itoa(va_arg(arg, int), buf, 2); put_s(buf); ret += strlen(buf); } else {
/* swi demone */ void swi_test(int num) { put_s("swi : "); print_int_hex(num); put_c('\n'); return; }
void uart_print( const char * fmt, ... ) { va_list args; int n; va_start ( args, fmt ); n = vsprintf ( printbuffer, fmt, args ); va_end ( args ); put_s(printbuffer); }
void LCDUI::printMenu( char *menuItems[], size_t menuLen, int top, int pos ) { _lcd->clear(); int height = min( menuLen, ROWS ); int start = top; int cursor = pos - start; // cursor offset from top of screen for ( int i = 0; i < height; i++ ) { put_s( menuItems[(start+i)%menuLen], 1, i ); } put_c( R_ARROW, 0, cursor ); // draw cursor }
int main() { char c; int a, b; // init_uart(); put_s("welcome use uart!\n\r"); printf("hello, world\n\r"); while (1) { printf("please enter two number: \n\r"); scanf("%d %d", &a, &b); printf("\n\r"); printf("the sum is: %d\n\r", a+b); } return 0; }
/* print a int in 16 mode with 0x */ void print_int_hex(int n) { char str_len[12]; itoa(n,str_len); put_s(str_len); }
/* print a char in 16 mode */ void print_char_hex(char cc) { char c_str[3]; ctoa(cc,c_str); put_s(c_str); }
/*** primul *** program ***/ void main() { put_s("salut"); }
void process(char* cmd){ put_s(cmd); }