Hallo Leute,
habe untenstehendes Programm auf die Schnelle zusammengewürfelt. Wollte einen DAC per PWM realisieren, habe einen RC-Tiefpaß aus R=330k und C=100nF zusammengetüdelt und versuche jetzt gerade zu schauen wie gut die Spannung geglättet ist.
Nun habe ich folgende 2 Probleme:
1. Ich bekomme hinter dem Tiefpaß keine vollen 5Volt und auch keine echten 0V heraus, obwohl der Controller mit 4,98V versorgt wird. Habe mal das Signal direkt aus dem PWM-Pin oszilloskopiert und siehe da es gibt auch gar keinen Zeitpunkt indem der Pin dauerhaft HIGH oder dauerhaft LOW bleibt, es bleibt immer noch eine ganz kleine Restspitze erhalten indem er meint irgendwie takten zu müssen.
Ist das normal??
2. Der UART schickt nur wilde Zeichen raus aber nicht den entsprechenden Wert der Variable "Spannung"
pwmdac.bas
Code:$regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1 Dim Spannung As Byte Spannung = 0 Pwm1a = Spannung Print "running" Spannung = 128 Pwm1a = Spannung Do If Pind.3 = 0 And Spannung > 0 Then Decr Spannung If Pind.2 = 0 And Spannung < 255 Then Incr Spannung Pwm1a = Spannung Print Spannung Waitms 250 Loop
EDIT:
habe soeben nochmals genau das oszilloskop betrachtet und fetgestellt, dass ich sehr wohl direkt auf 0v kommen kann undzwar indem ich meine spannung down taste dauerhaft gedrückt halte.
also scheint Bascom irgendwie das ocr1a-register zu checken und wenn da null drinsteht macht er auf unerfindlichen gründen wieder eine 1 daraus?!
fehler in Bascom oder verständnisproblem meinerseits?







Zitieren

Lesezeichen