PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fage zu PWM-Code



Exodus
26.06.2006, 14:40
Hallo,

Kann mir wer den code erklären, den mir mal wer geschrieben hat?
Ich kapier dass nicht warum ich unbedingt PB3 auf ausgang schalten soll!
Warum kann ich nicht z.b.: PB1 auf ausgang schalten und dort die PWM ausgeben?
Hat jemand eine erklärung, oder der der es mir malgepostet hat!

.org 0x0000
rjmp init



init:

ldi R16, HIGH(RAMEND)
out SPH, R16

ldi R16, LOW(RAMEND)
out SPL, R16

ldi R16, (1<<CS00) | (1<<WGM00) | ( 1<<COM01 )
out TCCR0, R16

ldi r16, (1<<Pinb3)
out ddrb, r16

ldi r16, 128
out OCR0, r16


loop:
ldi r16, 0x80
out OCR0, r16
rjmp loop


mfg
Michael

techboy
26.06.2006, 14:43
Ins Assembler kenn ich mich nicht aus...aber ich glaub mal das PB3 als Ausgang geschalten wird weil das die PWM Kanäle sind!? Kommt auf den mik. an...

Mfg.Attila Földes

Hanni
26.06.2006, 15:10
Ich kapier dass nicht warum ich unbedingt PB3 auf ausgang schalten soll!
Warum kann ich nicht z.b.: PB1 auf ausgang schalten und dort die PWM ausgeben?

1. www.atmel.com und das entsprechende Datenblatt besorgen
2. im Datenblatt: I/O Ports -> Alternate Port Functions -> Alternate Functions of Port B

Das anschauen und gegebenfalls noch mal den Abschnitt des Timer 0 durchlesen.

Da stehen alle Antworten drinne.


Ach ja, und hier noch die kurze Version:
Weil es eben nicht vorgesehen ist, die PWM auf einen beliebigen ausgang zu legen und der PB3 daher fest mit dem Timer verdrahtet ist.

Exodus
26.06.2006, 15:16
Habs gechekt!!!
Im datenblatt unter IO-PORT: Timer/Counter0 output compare match output

im Datenblatt und timer: The actual OC0 value will only visible on the port pin if the data direction for the port pin is set as output!

stimmts? :-)

MFG
Michael

bekoeppel
26.06.2006, 16:41
Jupp ;-)
Datenblätter sind halt schon was schönes *g*.

mfg
bekoeppel