PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM am AT90S2313



RCO
23.11.2004, 16:55
Hallo, ich weiß das es das schon in 1000 Vaianten gab, aber ich bin noch nicht durchgestiegen, und habs mitlerweile auch noch nicht kappiert.
Könnte mir einer ein wenig Code schicken, damit ich den PWM an Timer 0 oder 1 betreiben kann, und ihn vielleicht ein wenig kommentieren?

Bisher hab ich an brauchbarem nur das gefunden, was mir allerdings etwas merkwürdig erscheint und auch Fehler beim Compilieren verursacht. Merkwürdig deshalb, weil da schon Pwma und Pwm1a drin steht!?


Pwma Alias Portd.5 ' Modulated Pins
Pwmb Alias Oc1b
' Used Variables
Dim Temp1 As Word
Dim Temp2 As Word

Config Portb = Output ' PortB is Output
Portb = 255 ' Switch LEDs off

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up
Temp1 = &H0000 ' Configure Timer1 for PWM
Pwm1a = Temp1
Pwm1b = Temp1
Tccr1b = Tccr1b Or &H02 ' Prescaler = 8


Config Pind.0 = Input ' Configure PortD
Config Pind.5 = Output

Do
Bitwait Pind.0 , Reset ' Wait for key pressed
Bitwait Pind.0 , Set ' Wait for key unpressed
Temp1 = Temp1 + &H10 ' Increment Variable
Pwm1a = Temp1 ' Set PWM Registers
Pwm1b = Temp1
Temp2 = Temp1 / &H10 ' Reset 4 LSB and shift right
Temp2 = Not Temp2 ' Invert bit pattern
Portb = Low(temp2) ' Output bit pattern
Loop

End

Danke schonmal im Vorraus!

MFG Moritz

RCO
23.11.2004, 17:21
OK läuft soweit, hab nicht den Oszilatorpin belegt, aber was bedeutet:


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8

Kann ich mit einem Timer 2 PWMs steuern?

MFG Moritz

23.11.2004, 17:42
Hallo

Beim 2313 leider noch nicht, da er nur ein Compare Register für den Timer1 hat. Bei neueren kannst du mit Timer1 2 unabhängige PWM machen.

MFG
Dieter

RCO
23.11.2004, 18:02
Schade, also brauch ich sowohl Timer 1 als auch 0.
bleibt leider kein Counter :cry:

Aber was meint: "Compare A Pwm = Clear Down , Compare B Pwm = Clear Down"

MFG Moritz

Roberto
24.11.2004, 03:51
...Clear Down sagt, wie hier der Compare schaltet!

Entweder von High, Low , High (= Down)
oder Low, High , Low ( up)

m.f.G. Roberto

RCO
24.11.2004, 09:24
? Also ob es quasi normal oder invertiert ist?
ob die led 0 an oder aus ist!?

Aber beim AT90S2313 bringt mir ein zweites, also "compare B PWM" nix oder?

MFG Moritz

24.11.2004, 14:19
> ? Also ob es quasi normal oder invertiert ist?
könnte man so sagen..

>Aber beim AT90S2313 bringt mir ein zweites, also "compare B PWM" nix oder?

Weis nicht, was der 2313 jetzt hat.
(Schau mal im Datenblatt)

Beim Mega8 habe ich beim Timer 1 , zwei Compare Register und dadurch auch zwei PWM's (Timer2 nur eines)

Roberto
24.11.2004, 14:21
ups... war nicht eingelogt

RCO
24.11.2004, 14:24
Danke, dann hab ichs kappiert, soweit ich weiß, hat der 2313 keinen 2 compare, dann hat sich das erledigt, ist ein wenig blöd, weil ich dann keinen freien Timer mehr zum Counten habe, wenn ich beide Timer für PWM brauche, aber was soll man machen?

Roberto
24.11.2004, 14:32
warum nimmst du nicht gleich einen Mega8 ?!
So gross sind die Preisunterschiede ja nicht mehr ? oder ?

Bei uns gibt es den 2313 schon gar nicht mehr ..

RCO
24.11.2004, 15:49
Nein, das stimmt, aber ich hab mir halt grad ne PLatine etc. bestückt, und will nicht schon wieder was bestellen, denn wenn ich was bestelle, bleibt es nicht nur bei 2 Megas oder so. Dann lohnt sich das wegen den Versandkosten ja kaum ;-)

MFG Moritz