Hab da des Progi zum AD Wandeln und zum rauschicken auf die serielle. USART.h und die seriell.c sind da jetzt nicht dabei aber die funktionieren mit Sicherheit. Irgendwie bekomm ich aber gar nichts auf die serielle (schaus mir übers Hyperterminal an) bin noch ein µC Nub würde mich aber freuen wenn mir jemand helfen könnte. Thx Yoschi
Meine Vermutung als atmel-noob: Initialisierung der seriellen Schnittstelle (UART)?
na eben des muss passen. als das is mei c file wo i initialisiern tu. muss gehen! weil wenn i an char oder an string rausschreib gehts.
Wenn Deine Methode InitRS232 nicht irgendwo implizit aufgerufen wird, dann ist es toter Code. Du musst das Ding schon verwenden ,-)
So hab das jetzt so gmacht wie ich es eigentlich gerne hät! also mit High und Lowbyte. eigentlich eh recht schön beschrieben. Nur wenn ich es jetzt übers Hyperterminal z.b erfassen möchte lässt sich dei Com meistens nicht öffnen auser ich halte den reset gedrückt bis ich sie offen habe. Dann gehts. aber auch dann erkenn ich nicht unbedingt irgendeine unterschiede wenn ich die eingangsspannung ändere. Auch mit der entsprechenden Erfassungssoftware die für dieses Datenformat ausgelegt wäre krieg ich nicht undbedingt sinnvolle sachen rein. liegts hier an der µC software? Danke im Vorraus
Versuchst du mit dem mall dein ADC zu testen: http://www.mikrocontroller.net/forum/read-4-260506.html#new Vielleicht kannst du dein Programm auch so schreiben: uint8_t Buffer[20]; uint8_t iChannel = 0; int16_t ADCdata; int16_t read_adc(uint8_t input); int main(void) { InitRS232(); adc_init(); while (1) { iChannel++; if (iChannel>7) iChannel=0;// IChannel von 0 bis 7 ^^ ADC_data=read_adc(iChannel); itoa(ADC_data,Buffer,10); uart_puts(Buffer); uart_puts("\t"); // horizontal Tabulator iChannel++; if (iChannel>7) { iChannel=0; uart_puts("\n");// Zeilen Umbruch } delay(); } return 0; }
So jetzt hab i mein Programm auf single Ended umgeschrieben und zum anfang nur für einen Kanal zum testen(laut GCC - Tutorial) aber irgendwie kommt noch immer nix gscheides raus. Was mich vor allem wundert ist das ich "auf den Reset knopf bleiben muss" bis ich die com im Hyperterminal geöffnet habe. Sonst lässt sie sich gar nicht öffnen. Liegts vielleicht daran wie ich meine Daten umstelle: (Brauch sie aber dringend so laut meinen Kommentaren.) buffer = (ADCH<<8) | ADCL; //buffer aufbau: //0 0 0 0 0 0 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 //Resultierendes Ergebniss für Lowbyte: //D3 D2 D1 D0 Ch2 Ch1 Ch0 0 lowbyte=(buffer<<4); lowbyte &= 0xF0; lowbyte |= iChannel<<1; highbyte=(buffer>>2); highbyte&=3; highbyte|=(1<<0); highbyte|=(1<<1); //Resultierendes Ergebniss für highbyte: // D9 D8 D7 D6 D5 D4 1 1 Irgendwie versteh ich gar nichts mehr. Das kann doch nicht so schwer sein einen ADC am Atmega zu machen. mfg Yoschi
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.