Code:
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#define DAQ1 0x0300 //Channel 1 ADC card
//******************//
// Global variables //
//******************//
int graphdriver = DETECT,
graphmode,
linein,dev,xaxis,yaxis,key,time;
unsigned int data,data1,data2;
float Constant = 546.133,zeroline=190;
//***************//
// functions //
//***************//
void Display (void)
{
cleardevice();
setcolor(14);
outtextxy(20, 260, "Please use the following keys:");
setcolor(RED);
outtextxy(30, 270, "Channel 1");
outtextxy(30, 280, "Q=5 V/Div");
outtextxy(30, 290, "W=2 V/Div");
outtextxy(30, 300, "E=1 V/Div");
outtextxy(30, 310, "R=0.5 V/Div");
outtextxy(30, 320, "T=0.2 V/Div");
outtextxy(30, 330, "Y=0.1 V/Div");
settextstyle(0,0,0);
setcolor(8);
outtextxy(5,460, "Press Esc to exit");
outtextxy(330, 460, "Copyright (C) 2011 Mohammed Almualla");
for(dev=50;dev<530;dev=dev+6)
{
setcolor(8);
line(dev,10,dev,250);
}
for(dev=10;dev<255;dev=dev+6)
{
setcolor(8);
line(50,dev,530,dev);
}
setcolor(GREEN);
for(yaxis=10; yaxis<260; yaxis=yaxis+30)
{
line(50,yaxis,530,yaxis);
}
for(xaxis=50; xaxis<550; xaxis=xaxis+30)
{
line(xaxis,10,xaxis,250);
}
}
void waveform (void)
{
float SaveData;
outport(DAQ1);
delay(1);
data=inport(DAQ1);
SaveData =data/Constant;
data2=zeroline- SaveData;
setcolor(YELLOW);
for(linein=50; linein<541; linein++)
{
outport(DAQ1);
delay(1);
data=inport(DAQ1);
SaveData =data/Constant;
data2=zeroline- SaveData;
line(linein,data1,linein,data2);
data1=data2;
}
}
//***************//
// main Program //
//***************//
void main (void)
{
initgraph(&graphdriver,&graphmode,"c:");
for(;;)
{
if (!kbhit())
{
Display ();
waveform ();
}
else
{
key=getch();
switch(key)
{
case 'q':case 'Q':
Constant=546.133;
zeroline=190;
break;
case 'w':case 'W':
Constant=218.45;
zeroline=280;
break;
case 'e':case 'E':
Constant=109.22;
zeroline=430;
break;
case 'r':case 'R':
Constant=54.6125;
zeroline=730;
break;
case 't':case 'T':
Constant=21.8453;
zeroline=1630;
break;
case 'y':case 'Y':
Constant=10.9226;
zeroline=3130;
break;
case 27:
closegraph();
exit(0);
break;
}
}
if (key==27)
break;
}
}
can't figure out how to limit the vertical axes on the line!