📄 ad7715.c
字号:
///////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//// Driver routines for the AD7715 chip
#define ADC_CS PIN_C7
#define ADC_RESET PIN_C6
#define ADC_DRDY PIN_C2
#define ADC_DI PIN_C4
#define ADC_DO PIN_C5
#define ADC_CLK PIN_C3
void write_adc_byte(BYTE data);
adc_init()
{
output_low(ADC_RESET);
output_high(ADC_CLK);
output_high(ADC_CS); //Set low to AD7715 chip select low pin
output_high(ADC_RESET); //Set high to AD7715 reset low pin
delay_ms(3000);
write_adc_byte( 0x12 ); //Communications Register
write_adc_byte( 0x62 ); //Setup Register info here
}
void write_adc_byte(BYTE data) {
BYTE i;
output_low(ADC_CS);
for(i=1;i<=8;++i) {
output_low(ADC_CLK);
output_bit(ADC_DI, shift_left(&data,1,0));
output_high(ADC_CLK);
}
output_high(ADC_CS);
}
long int read_adc_word() {
BYTE i;
long data;
output_low(ADC_CS);
for(i=1;i<=16;++i) {
output_low(ADC_CLK);
output_high(ADC_CLK);
shift_left(&data,2,input(ADC_DO));
}
output_high(ADC_CS);
return data;
}
long int read_adc_value() {
long int value;
while ( input(ADC_DRDY) );
while ( !input(ADC_DRDY) );
while ( input(ADC_DRDY) );
write_adc_byte(0x3a);
value=read_adc_word();
return value;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -