-
Doch doch, es sind Werte zwischen 0-1023.
Ich sag ja es funktioniert ja alles sobald man einmal die Spannung am ADC Eingang ändert. Ab diesem Zeitpunkt wird alles korrekt angezeigt und auch korrekt verarbeitet. An den Daten selbst kann es nicht liegen. Die externe Beschaltung ist auch einwandfrei.
-
Nun ja, irgendwo muss der Fehler ja stecken, und das tut er meistens im Detail. Das originale Listing wäre hier von Vorteil, da man dann sehen kann, ob du z.B. led_port wirklich nicht definiert hast, etc.
An eine Fehlfunktion des ADC glaube ich nämlich auch nicht da ich diese schon oft verwendet habe, aber noch keine derartigen Probleme feststellen konnte.
Wenn alles ausser dem ADC funktioniert, könntest du also deine do-loop schleife durch eine for-next mit W als zählender Variable ersetzen und deine LED-anzeige geht fröhlich alle Anzeigewerte durch?
Am besten wäre also das originale Listing evtl sogar mit den Auszügen aus dem EEPROM. Und wenns dann auch nicht durchsichtiger wird, eine assembler-routine für den ADC stricken.
kannst du hinter dem getadc irgendwo kurz eine led aufleuchten lassen um zu sehen, ob der µC beim programmstart schon bei der messung hängt?
Gruß MeckPommER
-
Ahhhhhh ausversehen gelöscht ](*,)
-
So einen hängenden adc habe ich noch nicht gesehen *kopfkratz*
versuche es einfach mal mit einem LED-Aufleuchten hinter dem getadc. dann weißt du es genau.
Und das "start adc" würde ich trotzdem hinzufügen.
-
Soooo ... hab den Fehler gefunden :)
Code:
Do
W = Getadc(7)
If W > 0 And W < 50 Then : Led_port = &B10100111 : End If
If W > B(1) And W < C(1) Then : Led_port = &B11111001 : End If
...
...
...
Loop
Die Zeile "If W>0 ..." hat den ADC zum aufhängen bewegt, egal wie hoch der Spannungswert am ADC Eingang auch war beim einschalten.
Ich habe die Zeile jetzt in "If W>=0 ..." geändert und nun funktioniert es so wie es soll =D>
Danke für eure Hilfe.
Gruß
Jens
-
Und was war nun die Ursache der "Fehlfunkion"?
Viele Grüße
-
Sorry, kam mit dem schreiben nicht schnell genug hinterher ;)