Hi Jungs erstmal wünsche ich euch alle ein frohes neues Jahr zu meinem Problem, ich versuche über den ersten analog- digital wandlerkanal eine Spannung umwandlen, soweit so gut.wenn ich versuche nun die spannung an der Excel Tabelle weiterzugeben klappt das überhaupt nicht. Das Programm habe ich schon auf mein Atmega88 gespeichert die rx232 schnittstelle ist mit PD0:1 auf dem Stk500 verbunden. nun wenn ich die excel tabelle starte kommt entweder die Fehlermeldung " die Methode PortOpen für das Objekt 'IMDComm' ist fehlgeschlagen. Oder die Meldung "die Methode input für das Objekt 'IMDComm'ist fehlgeschlagen " wenn ich versuche die beiden Meldungen zu überspringen in visualbasic, kriege ich am ende 2 euro zeichen als Wert :-) ich wäre euch sehr sehr dankbar, wenn ihr mir hilft, denn allein komm ich wirklich nicht weiter. PS: C-code und Excel-Tabelle als Anhang Danke im Voraus
Hi Du hast ein "return(result);" am ende deiner Wandelfunktion vergessen. Was mit der Excel-Tabelle nicht stimmt, kann ich so nicht sagen. Dann Teste das ganze mal mit einem Terminalprogramm wie zum Beispiel Hyperterminal, minicom... Und bitte hier über Erfolg/Mißerfolg berichten. mfg mf
Anfänger schrieb: > nun wenn ich die excel tabelle starte kommt entweder die > Fehlermeldung " die Methode PortOpen für das Objekt 'IMDComm' ist > fehlgeschlagen. Oder die Meldung "die Methode input für das Objekt > 'IMDComm'ist fehlgeschlagen " stammt die Tabelle von Dir? evl. fehlen bei dir die benötigten ActivX Bibliotheken für die COM-Funktionen, wenn ich die Tabelle öffne siehts so wie im Anhang aus. Sascha
Hallo Jungs sorry dass ich erst heute zurückschreibe, eine Erkältung hat mich erwischt. ich habe es nun hingekrigt mit dem Hyperterminal die werte zu lesen. als nächster Schritt möchte ich gerne ein Spannungswert an den Hyperterminal übergeben . Die Umrechnnungen, die im Tutorail stehen, habe ich übernommen, nund kriege ich kommische werte villeicht kann jemand mich erlösen, denn ich find leider kein Fehler. am Eingang habe ich 1v Spannung eingestellt, nun möchte ich am Rs232 ungefähr 1 V lesen Anhang. Main.c und Übertragberischt Danke im voraus
Ein C Buch wäre nicht schlecht Das hier test=adc0*(4,8828125 ); ist nicht die Zahl 4 Komma 8828125. Gleitkommazahlen werden in Programmiersprachen praktisch immer wie im englischen Sprachgebrauch geschrieben. Mit einem Punkt und nicht mit einem Komma test = adc0 * 4.8828125; Lediglich Excel ist da eine (besch...) Ausnahme. Im deutschen Excel muss man ein Komma benutzen. Das hat schon für so manche Probleme gesorgt.
Hi du hat recht, ich wiess zwar dass man in C kein Komma sondern Punkt schreibt. habe leider dafor mit dem Formel in Excel rumgespielt und beim kopieren einfügen nicht darauf geachtet, hut ab :-) so nun die nächste Frage, ich möchte gerne soweit wie möcglich den Messfehler minimieren, gibts dafür irgendwelche Vorschläge!!! ich messe folgenden bei 3v messe ich 2.856/2851 bei 1 v messe ich 1.899 0.947
Anfänger schrieb: > so nun die nächste Frage, ich möchte gerne soweit wie möcglich den > Messfehler minimieren, gibts dafür irgendwelche Vorschläge!!! Du benutzt die interne Referenz ADMUX = (1<<REFS1) | (1<<REFS0); Die hat aber * weder exakt 2.56 Volt, sondern müsste ausgemessen werden (die interne Referenz ist hauptsächlich eines: stabil. d.h. sie verändert sich nicht. Das heißt aber nicht, dass sie exakt 2.56V beträgt. Sie kann auch 2.3V oder irgendwas anderes in diesem Bereich sein, solange sie nur eines tut: sich nicht verändern und stabil sein) * noch hat sie 5V. Du rechnest aber offenbar mit 5V als Referenzspannung, denn 5 / 1024 macht 0.00488..... und du hast ja offensichtlich das tausendfache davon genommen Deine 'Messfehler' sind also in Wirklichkeit deine eigenen Programmierfehler :-)
Hi Kart ich benutzte ein STK500 mit einem Atmega88.an Aref messe ich eine Spannungg von 5.041 V. Ist es nun richtig oder falsch. der AREF jumper auf dem STK500 ist angesteckt. besten Dank Karl
Anfänger schrieb: > Hi Kart > ich benutzte ein STK500 mit einem Atmega88.an Aref messe ich eine > Spannungg von 5.041 V. Ist es nun richtig oder falsch. Du schaltest REF0 und REF1 auf 1 Schau in dein Datenblatt zum Mega88 Was steht im Datenblatt, was das für den Mega88 bedeutet?
Tschuldigung. Ich hab selber im Datenblatt für den Mega16 nachgesehen, weil ich keines für den Mega88 da habe. Hab ich jetzt nachgeholt. REF0 und REF1 jewils auf 1, bedeutet 1.1V Referenz und nicht 2.56V wie ich weiter oben schrieb. Aber bis auf den anderen Zahlenwert bleibt alles andere gleich. Und erlös bitte deinen Mega88. Der versucht krampfhaft mit seiner internen Quelle die 1.1V als Referenz einzustellen und du bläst ihm da von aussen 5V auf die Schaltung. Irgendwann wird da einer nachgeben und kaputtgehen. Und das wird nicht deine 5V Versorgung sein.
hi Karl Ich habe es geändert und nehme jetzt die externe Refernzspannung, leider bin ich immer noch bei einm Fehler von ungefähr 1%, an Aref messe ich eine spannung von 5,049 V. Und für meinen Projekt ist die Messgenauigkelt sehr wichtig. die externe Refernzspannung habe ich so deklariert: ADMUX &=~ ((1<<REFS1) | (1<<REFS0)); Richtig??????????????? Vielleicht hat jemand ein Idee wie man das besser hin kriegt Danke im Voraus
Anfänger schrieb: > ADMUX &=~ ((1<<REFS1) | (1<<REFS0)); Richtig??????????????? Ja. Anfänger schrieb: > leider > bin ich immer noch bei einm Fehler von ungefähr 1% Im Datenblatt sind 2 LSB als absoluter Fehler angegeben, sollte etwa 0,2 % entsprechen. Die Frage ist, ob Du einen konstanten Fehler von 1 % hast oder die Werte im Bereich 1 % drüber oder drunter liegen, also schwanken. Also einfach mal z.B. 1.000 Wandlungen am Stück und mit den Ergebnissen etwas Statistik machen. Bei konstantem Fehler Korrekturwert machen (wobei sich natürlich die Frage der Genauigkeit Deines Meßmittels stellt ...), bei Streuung Meßsignal und Referenz besser blocken. Aber zu diesen Themen gibt es ganz viele Infos in der Suche.
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.