⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printf.c

📁 ADS下的bios工程
💻 C
字号:
#include <bios/stdio.h>#include <bios/stdioint.h>#include <bios/timer.h>#include <stdarg.h>extern void ser_write(const char *buf, int nr);extern int  ser_read(char *buf, int nr);extern int  ser_stat(void);extern void clear_timer(int timer) ;extern void set_timer(int timer, int cs) ;extern int lcd_prints(char *, int);struct stdfn    stdfn ={    ser_write,    ser_read,    ser_stat};int printf(const char *fmt, ...){    char    buffer[256];    va_list    ap;    int    len;    va_start(ap, fmt);    len = vsprintf(buffer, fmt, ap);    va_end(ap);    if (stdfn.write)        stdfn.write(buffer, len);    //lcd_prints(buffer, len);    return len;}int getc(void){    char    buffer[2];    clear_timer(KEY_TIMER);    return (stdfn.read(buffer, 1) == 1) ? buffer[0] : -1;}int gets(char *s){    int    cnt = 0;    char    c;    while ((c = getc()) != CR) {        if (c != BS) {              cnt ++;            *s ++ = c;            printf("%c", c);        }         else {            if (cnt > 0) {                 cnt --;                *s -- = 0x0;		printf("%c%c%c", c, ' ', c);            }         }    }     s = (char *)NULL;    return  cnt;}int getc_timed(int cs){    char    buffer[2];    set_timer(KEY_TIMER, cs);    return  (stdfn.read(buffer, 1) == 1) ? buffer[0] : -1;}int putc(char buffer){    stdfn.write((char *)&buffer, 1);    return  1;}int putchar(char buffer){    stdfn.write((char *)&buffer, 1);    return  1;}int puts(char *str){    int    cnt;    char    c;    for (cnt = 0; str[cnt]; cnt ++)        putc(str[cnt]);    return  cnt;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -