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

📄 lib_board.c

📁 44B0板子的检测程序 包括键盘 LED LCD SEG
💻 C
字号:
#include "s3c44b0.h"#include "lib_44b0.h"#include "lib_board.h"#define BRD_BASE        0x06000000#define rBRD_KEYNOE     (*(volatile unsigned char *)(BRD_BASE+0x00))#define rBRD_KEYLE      (*(volatile unsigned char *)(BRD_BASE+0x02))#define rBRD_SEG0       (*(volatile unsigned char *)(BRD_BASE+0x04))#define rBRD_SEG1       (*(volatile unsigned char *)(BRD_BASE+0x06))#define rBRD_SEG2       (*(volatile unsigned char *)(BRD_BASE+0x08))#define rBRD_SEG3       (*(volatile unsigned char *)(BRD_BASE+0x0A))#define rBRD_LCD1       (*(volatile unsigned char *)(BRD_BASE+0x0C))#define rBRD_LCD2       (*(volatile unsigned char *)(BRD_BASE+0x0E))#define rBRD_DAC        (*(volatile unsigned char *)(BRD_BASE+0x10))/*unsigned char seg_num[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,  0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};*/unsigned char seg_num[16]={0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F,  0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF};void brd_led(void){    int i;    unsigned int t;    t = (rPCONE&~0xFF00)|0x5500;    rPCONE = t;    t = rPDATE;    for (;;)    {        for (i=0; i<500000; i++);        rPDATE = t&~0xF0;        for (i=0; i<500000; i++);        rPDATE = t|0xF0;    }}void brd_int(void){    INT_ENABLE(26); // global    INT_ENABLE(22); // eint3    for (;;);}void brd_key(void){    int i;    unsigned int t;    unsigned char ki, ko;    unsigned char kl, kn;    int kcnt;    i = 0;    kcnt = 0;    for (;;)    {        for (i=0; i<4; i++)        {            ko = 0x01<<i;            rBRD_KEYLE = ko;            ki = rBRD_KEYNOE&0x0F;            kn = (ki<<4)|ko;            if (ki != 0) break;        }        if (kn == kl)            kcnt = (kcnt+1)%50000;        else            kcnt = 0;        if (ki == 0)            kcnt = 0;        kl = kn;        if (kcnt == 1000)        {            t = kn;            serial_puts("\n");            serial_puth(&t);        }    }}void brd_seg(void){    int i, j;    j=0;    for (;;)    {        for (i=0; i<500000; i++);        rBRD_SEG0=seg_num[j];        rBRD_SEG1=seg_num[j];        rBRD_SEG2=seg_num[j];        rBRD_SEG3=seg_num[j];        j=(j+1)%16;    }}void brd_lcd(void){    serial_puts("Not Support!\n");    return;}void brd_dac(void){    unsigned char i;    i = 0;    for (;;)    {        rBRD_DAC = i;        i++;    }}__irq void isr_eint3(void){    serial_puts("ISR of EINT3 is called!\n");    CLEAR_PEND_INT(22);}

⌨️ 快捷键说明

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