Hallo Gemeinde, ich versuche nun seite geschlagenden 2 Stunden etwas mit dem ADS8556 zu messen. Ich bekomme auch Werte doch leider sind die nicht Plausibel und ändern sich beim ändern der Spannung nicht. Bitte schaut mal in den Code und gebt mir nen Tip. Danke schon mal im vorraus. typedef union conv_ { unsigned long int w; unsigned char b[4]; } CONVERTW; void InitADHardware(void) { //Ein-/Ausgänge einstellen DDRD |= ((1 << SCLK)); // Port für SCLK als Ausgang einstellen DDRB |= ((1 << FS) | (1 << SDO) | (1 << CONVST)); // Port für FS, SDO, CONvST als Ausgang einstellen //löschen DDRD &= ~((1 << BUSY) | (1 << SDI_A) | (1 << SDI_B) | (1 << SDI_C)); // Port für BUSY,SDI_A,SDI_B,SDI_C als Eingang einstellen SET_FS(); SET_SCLK(); CLEAR_CONVST(); } void FirstConversion(void) { CONVERTW val; // declare UNION for easy conversion val.w=0; unsigned long int uiConv_A_Buffer=0; unsigned long int uiConv_B_Buffer=0; unsigned long int uiConv_C_Buffer=0; unsigned char i; unsigned long int Configuration=0xE20503FF; SET_CONVST(); while(PIND & (1<<BUSY)) ; //SET_SCLK(); //CLEAR_SCLK(); CLEAR_FS(); for (i=0;i<32;i++) { CLEAR_SCLK(); //if (Configuration & (1 << 31)){ if((Configuration >> 31)!=0){ PORTB |= ((1 << SDO)); } else { PORTB &= ~((1 << SDO)); } Configuration = (Configuration << 1); SET_SCLK(); // Read AD Port A ******************************* if (PIND & (1 << SDI_A)) { uiConv_A_Buffer++; uiConv_A_Buffer = (uiConv_A_Buffer << 1); } else { uiConv_A_Buffer = (uiConv_A_Buffer << 1); } // Read AD Port B ******************************* if (PIND & (1 << SDI_B)) { uiConv_B_Buffer++; uiConv_B_Buffer = (uiConv_B_Buffer << 1); } else { uiConv_B_Buffer = (uiConv_B_Buffer << 1); } // Read AD Port C ******************************* if (PIND & (1 << SDI_C)) { uiConv_C_Buffer++; uiConv_C_Buffer = (uiConv_C_Buffer << 1); } else { uiConv_C_Buffer = (uiConv_C_Buffer << 1); } // ********************************************** } //Ende Sequenz SET_FS(); SET_SCLK(); CLEAR_CONVST(); val.w = uiConv_A_Buffer; usart_write("\n"); usart_write_char(val.b[3]); usart_write_char(val.b[2]); usart_write_char(val.b[1]); usart_write_char(val.b[0]); val.w = uiConv_B_Buffer; //usart_write("B:"); usart_write_char(val.b[3]); usart_write_char(val.b[2]); usart_write_char(val.b[1]); usart_write_char(val.b[0]); val.w = uiConv_C_Buffer; //usart_write("C:"); usart_write_char(val.b[3]); usart_write_char(val.b[2]); usart_write_char(val.b[1]); usart_write_char(val.b[0]); }
Kennt keiner das Teil und kann mir biiiiitte helfen?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.