嵌入式开发实践的第二种柱状图代码

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include< sys/ipc.h>
#include <sys/ioctl.h>
#include<pthread.h>
#inelude <fcntl.h>
#include "s3c2410-adc.h"
#define ADC_DEV "/dev/adc/0raw"
static int adc_fd=-1;

/***************转换初始化程序*****************/
static int init_ADdevice(void)
{
if((adc_fd=open(ADC_DEV,O_RDWR))<0{
//如若打开文件错误,输出错误
printf("Error opening %s adc device\n", ADC_DEV);
return-1;
}
}
/******AD转换程*******/
static int GetADresult(int channel)
{
int PRESCALE=0XFF;
int data=ADC_WRITE(channel,PRESCALE);
write(adc_fd, &data, sizeof(data));
read(adc_ fd, &data, sizeof(data));
return data;
}
/******************显示数据** ************** *************/
void screen(float *d){ //中向屏幕输出显示内容,al. a2、a3三个端口的电压值
int i;
printf("ContextType:text/htmI\n\n");
printf("<head><title>search the data of a0 al a2</title> <meta http-equiv='refresh' content='2'></head>");
printf("<body margin:auto;padding:auto><table width= 100% ,height=100%>");
printf("<tr align=center><td colspan=50><h1><font color=0x558822> a1</font>
<font color=0x446622>a2</font><font color=0x224422>a3</font></h1></td></tr>);
printf("<tr align=center><td colspan=50><h1><font color=0x558822> %fV</font>
<font color=0x446622>%fV</font>
<font color=0x224422>%fV</font></h1></td></tr>",d[0]/100,d[1]/100,d[2]/100);
//显示a1a2a3的电压值
printf("<tr align=center height=100><td >");
if(d[0]>300) {printf("<div style='border:2px solid #666666;height=%f;width=70px;backgroun=#111111;'><p>a1</p></div></td>" ,d[0]);
}
//如若a1电压值过高,则显示黑色
else if(d[0]<50) {printf("<div style='border:2px soild
#666666;height=%f;width=70px;bakground=#999999;'><p>a1</p></div></td>" ,d[0]);}
//如若1电压值过低则显示灰色
else
printf("<div style 'border:2px soild
#666666;height=%f;width=70px;bakground=#558822;'><p>a1</p></div></td>" ,d[0]);

printf("<td>");//如若1电压正常,则显示绿色
if(d[1]>300){ printf("<div style='border:2px solid
#666666;height=%f;width=70px;background=#111111;'><p>a2</p></div></td>",d[1]);}
//如若a2电压值过高,则显示黑色
else if(d[1]<50){printf("<div style='border:2px soild
#66666;height=%f;width=70px;background=#999999;'><p>a2</p></div></td>",d[1]);}
//如若2电压值过低,则显示灰色
else
printf("<div style='border:2px solid:#66666;height=%f;width=70px;background#44662;'>
<p>a2</p></div></td>",d[1]);//如若a2电压值正常,则显示绿色
printf("<td>");
if(d[2]>300){printf("<div style='border:2px solid #666666;height=%f;width=70px;background#111111;'>
<p>a2</p></div></td>",d[2]);//如若a3电压值过高,则显示黑色
else
if(d[2]<50){printf("<div style='border:2px solid #666666;height=%f;width=70px;background#999999;'>
<p>a3</p></div></td>",d[2]);//如若a3电压值过低,则显示灰色
else

printf("<div style='border:2px solid #666666;height=%f;width=70px;background=#224422;'><p>a3</p></div></td></tr>",d[2]);//如若a3电压值正常,则显示绿色
for(i=0;i<3;i++){
if(d[i]>300){
printf("<tr align=center<td colspan=50><h1>font color=0x558822>the voltage of %d %f is too high!</font></hl></td></tr> "i,d[i]) ;
}//显示电压过高时的提示信息
if(d[i]<50){

printf("<tr align= center><td colspan=50><h1><font color=0x558822>the voltage of %d %f is too low!</font></h1>/td></tr>"i.d[i];}显示电压过低时的提示信息
}
printf("</table></body>") :

printf"("<script language='JavaScript'>");
printf(" function myrefresh(){");
printf("window.location.reload();");
printf("}");

printf( "setTimeout('myrefresh()',100));");
printf("</script>");

}

int main(void)
{
int i;
float d[3]={0};
void * retval;
if(init_ADdevice()<0)
return -1;
for(i=0;i<3;i++)
d[i]=((int)GetADresult(i)*3.3)/1024.0*100;//进行A/D转换,将数值存入数组
screen(d);//显示数组中的数值及柱状图
return 0;
}

 

posted @ 2019-08-05 17:08  研雨之情  阅读(283)  评论(0编辑  收藏  举报