PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega16, PWM, assembler



jill
20.06.2006, 14:45
Grüß Gott an alle,
ich habe folgendes Problem, ich schreibe zurzeit ein assembler-code für einen Atmega16, nun, brauche ich Ihre Hilfe bei folgenden Punkte:

-Rechteckiges PWM _signal einstellen
-Dauer der Impuls feststellen
-Da, mein program die Zyklen von einem Relais(1 000 000 Zyklus ist bei Relais keine seltenheit) hochzählen wird, wie stelle ich ein Vergleichswert bei OCR1A von über FFFF ( 65535 sind mir zu wenig)?
-Wie schliesse ich die Prellzeit(Prellzeit kann ich selbst ermittelt, wichtig hier ist das Vorgehen) aus?

...Es würde mich sehr freuen falls jemand mir dabei helfen würdest!!!
...Ich bin einem 1 Monat alte AVRassembler-Anfänger

Warte auf einem Zeichen von euch!!!

Jill[/b]

CowZ
20.06.2006, 14:54
Hi,

Der Mega16 hat nur einen 16-Bit-Timer, das wird folglich nicht über 0$FFFF gehen.

Für mehr Infos @ Assembler ist das hier das falsche Forum... (Und ich weiß es auch nich ;))

Gruß, CowZ

Hanni
20.06.2006, 17:13
okay,

ich fange einmal ganz oben an:

Eine Pulsweitenmodulation einzustellen ist an und für sich relativ einfach in Assembler, man muss eigentlich nur die richtigen Bits in den richtigen Registern setzen.
In diesem Zusammenhang möchte ich auf die "Modes of Operation" in der Timer Sektion im jeweiligem Datenblatt hinweisen.

Ergibt ssich aus 1.

Zähle die Werte "von Hand", also nicht im OCR? Register.

Als Lösungsansatz bietet sich z.B. an den Timer 1 als Zähler zu missbrauchen, also die Impulse die durch öffnen und schließen der Relaiskontakte entstehen als Takt zu nutzen. Näheres findest du in der Registerbeschreibung des Timers 1 (Stichwort: Clock sources)

Man müsste in diesem Fall bei einem Zählerüberlauf eigentlich nur ein Register oder Registerpaar Incrementieren.

die Relaiskontakte könnte man in dieser Lösung z.B. mittels eines RC Gliedes entprellen.


Grüße,

da Hanni.

jill
21.06.2006, 08:15
Vielen Dank Hanni für die Tips!
...Ich bin jetzt am durchblätten und hoffe daß, es aus diesem 355 Seiten Datasheet was rauskommt...!!! ...Vielleicht sollte ich den Assembler-Code hier stellen...Es wird bestimmt viele Fehler drin zu finden, aber ich bin halt Anfänger und bitte deshalb um Verständnis und Geduld!!!

Bis später,

Grüße,

Jill.

CowZ
21.06.2006, 12:00
Les doch nicht das ganze Tutorial ;)

Sondern nur den wichtigen Teil ;) Der Betrifft für PWM nur ein paar Seiten.

Wie Hanni schon sagte: "In diesem Zusammenhang möchte ich auf die "Modes of Operation" in der Timer Sektion im jeweiligem Datenblatt hinweisen."

Gruß, CowZ