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

📄 lib_44b0.c

📁 44B0板子的检测程序 包括键盘 LED LCD SEG
💻 C
字号:
#include "s3c44b0.h"#include "lib_44b0.h"/**************** System functions ****************/void cpu_init(){    //gpa is no need to change    //gpb is no need to change    //gpc GPC0-7 nDACK1 nDREQ1 GPC10-11 TXD1 RXD1 GPC14-15    rPDATC=0x00;    rPCONC=0x5F5F5555;    //gpd output    rPDATD=0x00;    rPCOND=0x5555;    //gpe0 output    //gpe1-2 uart    //gpe3-7 output    //gpe8 CODECLK    //pcone: 10 0101 0101 0110 1001    rPCONE=0x25569;    //gpf0-1 output    //gpf2 unused    //gpf3-4 nDACK0 nDREQ0    //gpf5-8 IIS    //pconf: 100 100 100 100 11 11 01 01 01    rPCONF=0x2493D5;    //gpg0-3 interrupt input    //gpg4-7 L3 output    //rcong: 0101 0101 1111 1111    rPCONG=0x55FF;    rPDATG=0x0FFF;    //rextint: - - - - - high    rEXTINT=0x5555; // 0001    rINTMOD=0x00; // irq    serial_set();    serial_flush();    CLEAR_PEND_ALL;    INT_ENABLE(26); // global    //INT_ENABLE(25); // eint0    //INT_ENABLE(13); // timer0    //INT_ENABLE(12); // timer1}/**************** Serial functions ****************/void serial_set(void){    int i;    /* Locate UART to GPIO */    //PCONE = 0x? Do it in gpio_set()    /* FIFO enable, Tx/Rx FIFO clear */    rUFCON0 = 0x07;    rUMCON0 = 0x0;    /* Normal,No parity,1 stop,8 bit */    rULCON0 = 0x03;    /* Normal: interrupt or polling */    rUCON0 = 0x05; //??0x245    rUBRDIV0 = 21; //115200 while Fcpu = 40MHz    for (i=0; i<100; i++);}void serial_flush(void){    int i;    /* FIFO enable, Tx/Rx FIFO clear */    rUFCON0 = 0x07;    for (i=0; i<100; i++);}char serial_getc (void){    while (!(rUTRSTAT0 & 0x1));    return rURXH0 & 0xFF;}void serial_putc (const char c){    while (!(rUTRSTAT0 & 0x2));    rUTXH0 = c;}char serial_tstc (void){    return rUTRSTAT0 & 0x1;}void serial_puts (char *s){    while (*s!=0x00)    {        serial_putc(*s);        if ((*s)=='\n') serial_putc('\r');        s++;    }}void serial_gets (char *s){    char *c;    c=s;    *s=0x00;    while (*s!=0x0D)    {        *s=serial_getc();        *s=*s&0x7F;        if (*s!=0x08)        {            serial_putc(*s);            s++;        }        else if (c!=s)        {            serial_putc(0x08);            serial_putc(0x20);            serial_putc(0x08);            s--;        }    }    serial_putc(0x0A);    *s=0x00;}void serial_puth (unsigned int *h){    unsigned int t;    char c;    int i;    t=*h;    serial_putc('0');    serial_putc('x');    for (i=28;i>=0;i-=4)    {         c=((t>>i)&0x0F)+0x30;         if (c>0x39) c+=0x07;         serial_putc(c);    }}void serial_geth (unsigned int *h){    unsigned int t;    char c;    char b[14];    int i,j;    i=0;    c=0x00;    while ((c!=0x0D)&&(i!=12))    {        c=serial_getc();        c=c&0x7F;        if (c!=0x08)        {            serial_putc(c);            b[i]=c;            i++;        }        else if (i!=0)        {            serial_putc(0x08);            serial_putc(0x20);            serial_putc(0x08);            i--;        }    }    if ((i==12)&&(c!=0x0D)) serial_putc(0x0D);    serial_putc(0x0A);    t=0;    for (j=0;j<i;j++)    {        if ((b[j]==0x58)||(b[j]==0x78)) t=0; // 'x' and 'X'        if (b[j]>0x39) b[j]-=0x07;        if ((b[j]>=0x30)&&(b[j]<=0x3F)) t=(t<<4)+((b[j]-0x30)&0x0F);    }    *h=t;}

⌨️ 快捷键说明

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