📄 max144._h
字号:
//**********ADC口线定义**********//
#define adc_cs PA2
#define adc_sdat PA1
#define adc_sclk PA0
#define adc_port PORTA
#define adc_ddr DDRA
#define adc_pin PINA
unsigned int adc_out1,adc_out0;
unsigned int adcttemp[2][15];
unsigned int adcfirst[2];
void max144_read(void)
{
unsigned char temp;
unsigned int adc_temp=0;
unsigned long adc;
/*********max144模拟SPI口线设置**********/
adc_port|=BIT(adc_cs)|BIT(adc_sdat)|BIT(adc_sclk);
adc_ddr|=BIT(adc_cs)|BIT(adc_sclk);
adc_ddr&=~BIT(adc_sdat);
adc_port|=BIT(adc_cs);
adc_port|=BIT(adc_sclk);
adc_port&=~BIT(adc_cs);
asm("nop");asm("nop");asm("nop");asm("nop");
adc_port&=~BIT(adc_sclk);
while(1)
{
if((adc_pin&BIT(adc_sdat))==BIT(adc_sdat))
break;
}
temp=16; while(temp--)
{
adc_port|=BIT(adc_sclk);
if((adc_pin&BIT(adc_sdat))==BIT(adc_sdat))
adc_temp++;
adc_temp=adc_temp<<1;
adc_port&=~BIT(adc_sclk);
}
adc_port|=BIT(adc_cs);
if((adc_temp&0x2000)==0x2000)
{
adcfirst[0]=(adc_temp>>1)&0xfff;
adc_temp&=0x1ffc;
adc=adc_temp;
adcttemp[0][14]=adc_temp;
for(temp=0;temp<14;temp++)
{
adcttemp[0][temp]=adcttemp[0][temp+1];
adc+=adcttemp[0][temp];
}
adc/=15;
adc_temp=adc;
adc_out1=adc>>1;
}
else
{
adcfirst[1]=(adc_temp>>1)&0xfff;
adc_temp&=0x1ffc;
adc=adc_temp;
adcttemp[1][14]=adc_temp;
for(temp=0;temp<14;temp++)
{
adcttemp[1][temp]=adcttemp[1][temp+1];
adc+=adcttemp[1][temp];
}
adc/=15;
adc_temp=adc;
adc_out0=adc>>1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -