PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PMW-Ausgänge beim Mega16 ansteuern



little_boy
22.03.2006, 19:51
Hallo,
ich bin hier neu und auch die µC-Programmierung ist neu für mich.
Als Werkzeuge nutze ich AVR-Studio und den AVRISP.

Ich möchte die 4 PWM-Ausgänge meines mega16 ansteuern. Der OCR0 funktioniert auch einwandfrei. Hier der Code:



#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
#include <stdint.h>
#include <avr/delay.h>
#include <avr/signal.h>

static void io_init(void)
{
DDRB=0xff;
TCCR0=(1<<WGM00)|(1<<COM01)|(1<<CS01);
OCR0=0;
}
int main(void)
{
io_init();

while(1)
{

}
return(0);
}


Jedoch bekomme ich die anderen drei nicht zum Laufen.

Kann mir jemand sagen wie der Code auszusehen hat, bzw. wie ich die Timer konfigurieren muß und die identische Funktion wie OCR0 zuerreichen?


Danke!

askazo
23.03.2006, 07:40
Timer 2 wird genau identisch eingestellt:


TCCR2 = (1<<WGM20)|(1<<COM21)|(1<<CS21);
OCR2 = 0;

Da Timer 1 ein 16-Bit Timer ist, hast Du hier mehr Einstellmöglichkeiten und zudem 2 Ausgangs-Pins. Folgende Einstellung stellt den Timer auf Phase-Correct PWM, 8 Bit, OC1A connected (Funktion wie oben), OC1B disconnected

TCCR1A = (1<<COM1A1) | (1<<WGM10);
TCCR1B = (1<<CS11);


askazo

little_boy
28.03.2006, 14:59
Danke, jetzt läufts einwandfrei!