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.