Forum: Mikrocontroller und Digitale Elektronik Bascom PWM Problem


von Pascal B. (mini12345)


Lesenswert?

Hallo, ich uss euch was fragen.
Ich übe gerade ein wenig mit PWM und will das ja auch verstehen.

mein Code:
1
$crystal = 1000000                                          'Frequenz: 1 MHz
2
3
$swstack = 50
4
$hwstack = 50
5
$framesize = 50
6
7
Config Portb.1 = Output
8
9
Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Up
10
11
Dim A As Integer
12
13
Do
14
For A = 0 To 1023
15
  Compare1a = A
16
  Waitms 10
17
Next
18
A = 0
19
Wait 10
20
21
Loop
22
End
Nach meiner Meinung sollte die LED hell werden dann 10 Sekunden aus usw.

Aber die LED geht 4 mal von dunkel nach hell und bleibt dann 10 Sekunden 
an oO...
Kann mir dass einer erklären? in meinem Buch ist das für mich nicht 
verständlich erklart ( Bascombuch Stefan Hoffmann)
Danke
MFG Pascal

: Bearbeitet durch User
von Samuel C. (dragonsam)


Lesenswert?

Du setzt zwar A auf 0, jedoch, das Compare-Register nicht.

von MWS (Gast)


Lesenswert?

Pascal B. schrieb:
> Aber die LED geht 4 mal von dunkel nach hell und bleibt dann 10 Sekunden
> an oO...

Wenn man 10 Bit
1
For A = 0 To 1023
in 8 Bit reinschreibt, dann laufen die 8Bit eben 4 mal über.
1
Pwm = 8
Nach Ende des Durchlaufs wird A zwar auf 0 gesetzt, aber das eigentlich 
wichtige Compare1-Register bekommt davon nichts mit.

Ich hoff' mal, dass das nicht so im Buch steht.

von Pascal B. (mini12345)


Lesenswert?

nein steht so nicht drin, ist eine Übung von mir.
Das mit dem Überlaufen klingt logisch....
1
$crystal = 1000000                                          'Frequenz: 1 MHz
2
3
$swstack = 50
4
$hwstack = 50
5
$framesize = 50
6
7
Config Portb.1 = Output
8
9
Config Timer1 = Pwm , Pwm = 10 , Prescale = 8 , Compare A Pwm = Clear Up
10
11
Dim A As Integer
12
13
Do
14
For A = 0 To 1023
15
  Compare1a = A
16
  Waitms 2
17
Next
18
Compare1a = 0
19
A = 0
20
Wait 10
21
22
Loop
23
End
so funktioniert es , danke für die hilfe

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.