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

📄 sarbit.c

📁 _计算实用教程Visual C++6.0实用教程
💻 C
字号:
/*sarbit.c*/
/*Super simple Arbitrary waveform generator*/
#include<stdio.h>
#include<dos.h>

#define MAX_STATES 12

#define UNIT 100 /*define the count for UNIT*/
/*for our case UNIT must translate to 10 us*/

/*a specific delay routine tuned to produced the required delay*/
void mydel(unsigned int);


void mydel(unsigned int dtime)
{
unsigned int looptime, temp;
for(looptime=0; looptime<dtime; looptime++)
for(temp=0;temp<UNIT;temp++);


}

main()
{
unsigned char wstate[12], temp=0;
unsigned int wdelay[12];
unsigned int dport=0x378; 
/*set the address of the DATA port*/

/*assign the required states to the array elements*/
wstate[0]=0x16;
wstate[1]=0x1F;
wstate[2]=0x1E;
wstate[3]=0x14;
wstate[4]=0x16;
wstate[5]=0x0A;
wstate[6]=0x0B;
wstate[7]=0x1B;
wstate[8]=0x0B;
wstate[9]=0x0A;
wstate[10]=0x02;
wstate[11]=0x12;

/*assign the required delay time to the array elements*/
wdelay[0]=3;
wdelay[1]=3;
wdelay[2]=1;
wdelay[3]=4;
wdelay[4]=1;
wdelay[5]=1;
wdelay[6]=3;
wdelay[7]=2;
wdelay[8]=2;
wdelay[9]=2;
wdelay[10]=2;
wdelay[11]=4;

/*do it for ever*/
for(;;)

        {
         disable(); /*disable external interrupts*/

/*generate the waveforms with getting disturbed*/
             for(temp=0; temp<MAX_STATES; temp++)
                 {
                  outportb(dport, wstate[temp]);
                  mydel(wdelay[temp]);
                 }

         enable(); /*now enable interrupts again*/
/*so that pending interrupts can be serviced*/
        }


}

⌨️ 快捷键说明

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