ad.c

来自「该源码是创维特ARM7 JX44B0X板的例子程序」· C语言 代码 · 共 68 行

C
68
字号
#include <stdio.h>#include <sys/time.h>#include <signal.h>#include "../include/44b.h"struct timeval tpstart;#define MAX_VALUE                       0x3ff#define MIN_VALUE                       0x0                                                                                       char display_buffer[6];int refresh_index = 0;                                                                                       unsigned char seg7table[16] ={    /* 0       1       2       3       4       5       6      7*/    0xc0,   0xf9,   0xa4,   0xb0,   0x99,   0x92,   0x82,   0xf8,                                                                                           /* 8       9      A        B       C       D       E      F*/    0x80,   0x90,   0x88,   0x83,   0xc6,   0xa1,   0x86,   0x8e,};void ad_poll_timer(int signo){    if(refresh_index == 2) refresh_index ++;    if(refresh_index == 5) refresh_index =0;    *((unsigned char*) 0x02000006) = 0x3f & ~(0x01 << refresh_index);    *((unsigned char*) 0x02000004) = seg7table[display_buffer[refresh_index]];    refresh_index ++;}char trans_input(int value){    if(value == MAX_VALUE) return 100;    return(char )(value * 100 / (MAX_VALUE-MIN_VALUE));}int ad_poll(int argc, char **argv){    int loop_delay;    int data = 0;    int get_index;        int value;    int rADCDAT_TEMP0,rADCDAT_TEMP1,rADCDAT_TEMP2,rADCDAT_TEMP3,                    rADCDAT_TEMP4,rADCDAT_TEMP5,rADCDAT_TEMP6,rADCDAT_TEMP7;                                                                                           rADCPSR=0x0;                                                                                           data = 0;                                                                                           for(get_index = 0; get_index < 16; get_index++)    {         rADCCON=0x1|(0x2<<2);   // AIN2         while(!(rADCCON & 0x40));         data+=rADCDAT;    }                                                                                           data /= 32;                                                                                           value = trans_input(data);    display_buffer[0] = value / 100;    display_buffer[1] = value % 10;    return value;} 

⌨️ 快捷键说明

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