tauruz
12.10.2008, 16:47
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
$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?
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
$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?