|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 11:56 am
|
Страница 1 от 1
|
[ 3 мнения ] |
|
Интерфейс на AD77XX (АЦП от Analog Devices) с PicMicro
| Автор |
Съобщение |
|
LamiLami
Ранг: Минаващ
Регистриран на: Чет Ное 10, 2005 2:17 am Мнения: 35
|
 Интерфейс на AD77XX (АЦП от Analog Devices) с PicMicro
Помогнете ...
Няма много инфо за тях, май не са популярни?
|
| Пон Дек 19, 2005 8:31 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
Интересно защо така мислиш, инфо има достатъчно, ето по долу, това някога съм го преработвал за 7714, не помня оригинално за какво е било, трябва да работи, библиотеката е за CCS.
//*************************************************************
// Driver routines for the AD7714 chip, by ToHu
// write_adc_byte()
// adc_init()
// read_adc_word()
// read_adc_value()
//*************************************************************
#define ADC_CS PIN_A0
#define ADC_RESET PIN_A1
#define ADC_DRDY PIN_A2
#define ADC_DI PIN_A3
#define ADC_DO PIN_A4
#define ADC_CLK PIN_A5
void write_adc_byte(int data)
{
int 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);
}
adc_init()
{
output_low(ADC_RESET);
output_high(ADC_CLK);
output_high(ADC_CS); //Set low to AD7714 chip select low pin
output_high(ADC_RESET); //Set high to AD7714 reset low pin
delay_ms(3000);
write_adc_byte(0x24); //to com.register, chanel & filter Hi
write_adc_byte(0xCF); //to filter hi register
write_adc_byte(0x34); //to com.register, chanel & filter low
write_adc_byte(0x00); //to filter low register
write_adc_byte(0x10); //to com register, chanel & mod register
write_adc_byte(0x20); //to mod register, self test
}
int32 read_adc_word()
{
int i;
int32 data;
output_low(ADC_CS);
for(i=1;i<=24;++i)
{
output_low(ADC_CLK);
output_high(ADC_CLK);
shift_left(&data,3,input(ADC_DO));
}
output_high(ADC_CS);
return data;
}
int32 read_adc_value()
{
int32 value;
while ( input(ADC_DRDY) );
while ( !input(ADC_DRDY) );
while ( input(ADC_DRDY) );
write_adc_byte(0x58);
value=read_adc_word();
return value;
}
|
| Вто Дек 20, 2005 1:50 am |
|
 |
|
LamiLami
Ранг: Минаващ
Регистриран на: Чет Ное 10, 2005 2:17 am Мнения: 35
|
 Thanks !
Благодаря ти ...
Ще го пробвам и ще опитам да го доразвия...
10х
|
| Чет Дек 22, 2005 3:50 pm |
|
|
|
Страница 1 от 1
|
[ 3 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|