New oscilloscope
I am having difficulty reading in the analog voltage from my A/D converter. My dad bought me a oscilloscope, and I am looking at the signals generated by the raspberry Pi to the A/D converter to see if they look right. Below is my program:
uchar get_ADC_Result(void)
{
//10:CH0
//11:CH1
uchar i;
uchar dat1=0, dat2=0;
digitalWrite(ADC_CS, 0); <------------------- Make chip select low
digitalWrite(ADC_CLK,0);
digitalWrite(ADC_DIO,1);
digitalWrite(ADC_CLK,1);
digitalWrite(ADC_CLK,0);
digitalWrite(ADC_DIO,1); delayMicroseconds(2); //CH0 10
digitalWrite(ADC_CLK,1);
digitalWrite(ADC_CLK,0);
digitalWrite(ADC_DIO,0);
digitalWrite(ADC_CLK,1);
digitalWrite(ADC_DIO,1); delayMicroseconds(2);
digitalWrite(ADC_CLK,0);
digitalWrite(ADC_DIO,1); delayMicroseconds(2);
for(i=0;i<8;i++)
{
digitalWrite(ADC_CLK,1);
digitalWrite(ADC_CLK,0); delayMicroseconds(2);
pinMode(ADC_DIO, INPUT);
dat1=dat1<<1 | digitalRead(ADC_DIO);
}
for(i=0;i<8;i++)
{
dat2 = dat2 | ((uchar)(digitalRead(ADC_DIO))
digitalWrite(ADC_CLK,1);
digitalWrite(ADC_CLK,0); delayMicroseconds(2);
}
digitalWrite(ADC_CS,1); <-------------- Make chip select high
pinMode(ADC_DIO, OUTPUT);
return(dat1==dat2) ? dat1 : 0;
}
As you can see in the program, I am also making pulses on the CLK line. Below is a picture of the scope of the signals. And they match!
TThe problem was a broken wire, which I am in the process of fixing. |
Comments
Post a Comment