📄 eepdriver.cpp
字号:
#include "driver.h"
#include "EEPDriver.h"
#define outp WRITE_PORT_UCHAR
#define inp READ_PORT_UCHAR
void delay(int d)
{
int i,j;
for(i=0; i<100; i++)
for(j=0; j<d; j++);
}
void awr(int data)
{
outp(DPORT,data);
outp(CPORT,0x0d);
outp(CPORT,0X04);
}
void dwr(int data)
{
outp(DPORT,data);
outp(CPORT,0x07);
outp(CPORT,0x04);
}
int rd()
{
int data;
outp(CPORT,0x26);
data=inp(DPORT);
outp(CPORT,0x04);
return data;
}
void inicoder()
{
outp(CPORT,0x04);
delay(100);
outp(CPORT,0x00);
outp(CPORT,0x04);
}
long encoder()
{
long value;
int lsb,msb;
awr(ENCODERL);
lsb=rd();
awr(ENCODERM);
msb=rd();
//value=msb*256+lsb;
value=((msb + 0x08) & 0x0f)*256+lsb;
awr(255);
return value;
}
unsigned char rdttl()
{
int data;
awr(TTL_IN);
data=rd();
return data;
}
void button()
{
int data;
awr(SW_ADD);
for(data=0;data<=255;data++)
{
dwr(data);
delay(500);
}
}
long rd197(int channel)
{
long result;
int cmd=0;
int eoc;
int lsb;
int msb;
switch (channel)
{
case 1: cmd=0x48;break;
case 2: cmd=0x49;break;
case 3: cmd=0x4a;break;
case 4: cmd=0x4b;break;
case 5: cmd=0x4c;break;
case 6: cmd=0x4d;break;
case 7: cmd=0x4e;break;
case 8: cmd=0x4f;break;
default:cmd=0x48;
}
awr(MAX197L);
dwr(cmd);
eoc=inp(SPORT);
//printf("%x",(eoc&&0x10));
wait: if((eoc&&0x10)==0) goto wait;
else
{
lsb=rd();
//printf("\nCH%d 's LSB=%10d",channel,lsb);
awr(MAX197M);
msb=rd();
//printf("\nCH%d 's MSB=%10d\n",channel,msb);
awr(255);
//result=msb*256+lsb;
result=((msb +0x08) & 0x0f)*256+lsb;
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -