Hallo Leute ! Ich bin gerade ziemlich am verzweifeln. Habe festellen müssen, das die beiden Ain Eingäng gar keine AD-Converter sind ( natürlich erst nach dem Ätzen :-(, ja ja ich weiß Datenblätter lesen...) Also hab ich noch eine R-C Beschaltung vom Port B.2 nach Port B.0 auf die Platine "gebastelt", so wie es auch hier im Forum schon erwähnt wurde. Nur leider bekomme ich mit meinem Programm nur zufallszahlen. hier der Code: -------------------------- 'Variables Declare Sub Getadcvalue() Dim Result As Byte Dim Convertcomplet As Bit '1 wenn AD Wandlung fertig 'Ein Ausgänge Festlegen Config Pinb.0 = Input 'ACI IN Config Pinb.1 = Input 'ACI IN Config Pinb.2 =output 'ANALOG OUT Daout Alias Portb.2 ' D/A Ausgang '...und Interrupts Festlegen Enable Interrupts Enable Aci Config Timer0 = Timer , Prescale = 1024 Enable Timer0 On Aci Aci_int On Timer0 Timer_int Do Call Getadcvalue() 'starte A/D Wandlung Do Loop Until Convertcomplet = 1 'warte bis Wandlung komplett Print Result 'Debug print '........ '.......... ' hier steht irgendwann mal die Display Ausgabe Routine '.......... Loop '************************* '*AD Wandler start Routine '**************************** Sub Getadcvalue Daout = 1 'starte Ladevorgang Tcnt0 = 0 'Timer zurücksetzen Start Timer0 '..und starten Convertcomplet = 0 End Sub '****************************** '*Analog Comparator Interrupt '****************************** Aci_int: Disable Interrupts Stop Timer0 Result = Tcnt0 Daout = 0 Waitms 10 Convertcomplet = 1 Enable Interrupts Return '**************************************** '* Timer Überlauf = Eingang out of Range '************************************** Timer_int: Disable Interrupts Stop Timer0 Result = 255 Daout = 0 Waitms 10 Convertcomplet = 1 Enable Interrupts Return --------------------------------- bin jetzt schon seit dem WE dran, und hab´s nicht zum laufen gebracht ! Irgendwelche Ideen ? - Falko PS Compiler: Bascom-AVR V1.11.6.4
Hallo Also vom Port B.2 geht ein Widerstand zum Port B.0 und vom dort ein Kondensator nach GND geschaltet R ist 24k Für den Kondensator hab ich schon verschiedene Werte gestetet (47n / 1uF..) Das Analoge Eingangsignal geht auf Port B.1 ( über Spannungsteiler und Z-Diode zur Begrenzung auf 5V) -Falko
Hm, mal abgesehen davon das ich von dem Basic Krempel kein Wort verstehe sehe ich als erstes mal, das der PortB.2 kein PWM Ausgang ist. Ich vermute mal das an diesem Port ein PWM Signal rauskommen soll welches dann durch Widerstand und Kondensator geglättet wird. Wenn der Compiler das PWM Signal nich per Software erzeugt kann es nicht gehen. Gruß Markus http://www.elektronik-projekt.de/
Nein, kein PWM. Es soll folgender maßen funktionieren : Kondensator solange aufladen bis vom Komparator ein Interrupt ausgelöst wird. Die Zeit vom start bis zum interrupt müßte doch dann der Spannung am Eingang entsprechen. 1. Starte Kondensator Ladevorgang 2. Starte Timer 3. Wenn Interrupt dann... 4. Stop Timer 5. Ergebniss gleich Zeit Timer 6. Kondensator entladen 7. Timer auf null zurücksetzen Obwohl PWM auch ne möglichkeit währe... - Falko PS: Und ich versteh nix von diesen Assembler zeugs...
Hm, verstehe wie das funktionieren soll. Einen Fehler konnte ich jetzt leider nicht finden. Gruß Markus
Auf der Atmel Homepage gibt es eine Applikation Note "AVR128: Setup and Use the Analog Comparator". Hat nur 3 Seiten. Vielleicht hilfts ja bei der Fehlersuche, wenn Du Dir die Funktionsweise des Comarators "reinzeihst". Viel Glueck, remo
Hi! Ich vermute mal dein Timer ist schneller als die Ladekurve an deinem Eingang, mit 24K*47n brauchst du 1,13 ms bis 63% Umax(=Tau).Nach 5 Tau, sagt man, ist der Ladevorgang zu 99% abgeschlossen. Das Ganze hat dann vor allem noch den blöden Beigeschmack einer e-Funktion und ist zum messen ungünstig. Besser wäre vermutlich eine Ladung mit I = const., dann ist t = C * delta U / I . Wenn du I und C auf deine Timerzeit abstimmst wird die Sache recht einfach. Achte aber beim entladen auf einen def. Startwert, sonst stimmt die Sache auch nicht. Gruss Uwe PS.:kann mal jemand die Sache mit den mind.4 Zeichen im Namen andern, jedesmal ist der Beitrag weg!!!!!!
Danke für die Antworten, es klappt jetzt. Hatte noch den falschen Chip bei Bascom eingestellt. Die R und C Werte muß ich auch noch etwas optimieren. Thanks... Gruss Falko
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.