8112CV


/* #######################################################################
/* Sends control voltage in steps to the CV input of a mono-syntheziser */
/* #####################################################################*/
#include "windows.h"
#include <stdio.h>
#include <stdlib.h>
#include "dll2.h"


#define BASEVALUE	2000


/* Initialize card */
int InitCard()
{
int PASCAL res;
res=W_8112_Initial(CARD_1,0x380);
res=SetDA(0,BASEVALUE);
return(0);
}

/*set D/A output voltage  */
int SetDA(int channel,unsigned int value)
{
int PASCAL res;
res=W_8112_DA(channel,value);
return(0);
}


/* Make suitable delay by calculation (machine specific) */
/* will make a new proc using internal counter later... */
int DelayIt()
{
int count=0;

printf("delaying\n");
while (count<25000000)
	{
	++count;
	}
return(0);
}


/* increase notevalue */
int IncNote(unsigned int vc)
{
unsigned int value;
value=BASEVALUE+(vc*71);
return(value);
}



int main()
{
int vc=0;
int note=0;
InitCard();
printf("init ready\n");
/* increment in steps with delay in between */
while (vc<12)
	{
   	vc++;
  	printf("value:%d\n",IncNote(note++));
    SetDA(0,IncNote(note));
    DelayIt();
  	}

getch();
return(0);
}