Moin Moin,
ich möchte mit meinem ATMega32 zwei Motoren Ansteuern. Die Dafür vorgesehene PWM einstellunge krieg ich aber irgendwie nicht hin . Als erstes weiß ich nicht welche COM bits ich setzten soll. Für mich kland Toggle on compare Match richtig also hab ich COM1A0 und COM1B0 gesetzt. Für Fast PWM im 8bit modus hab ich WGM12 und WGM10 gesetzt. als Prescaler hab ich 8, also hab ich CS11 noch gesetzt. Aber irgendwie funktioniert das ganze noch nicht Wirklich wo ist der Fehler? Hier nochmal der Code :
Code:
#define F_CPU 11059200
#include <avr\io.h>
#include <avr\interrupt.h>
#include <inttypes.h>
void init(void)
{
DDRB = (1<<PB0) | (1<<PB1);
TCCR1A= (1<<COM1A0) | (1<<COM1B0) | (1<<WGM10);
TCCR1B= (1<<WGM12) | (1<<CS11);
}
void LEDON (void)
{
PORTB = (1<<PB0)|(1<<PB1);
}
inline void Geschwindigkeit(unsigned char left_speed, unsigned char right_speed)
{
OCR1AH = left_speed;
OCR1BH = right_speed;
}
/*inline void Richtung(unsigned char left_dir, unsigned char right_dir)
{
PORTD = (PORTD &~ ((1 << PD4) | (1 << PD5))) | left_dir;
PORTB = (PORTB &~ ((1 << PB4) | (1 << PB5))) | right_dir;
}*/
int main (void)
{
init();
while (1)
{
LEDON();
Geschwindigkeit(250,250);
}
return 0;
}
mfg
Erik
Lesezeichen