Gast
#4763458
Hallo, ich möchte gerne 2 Motoren unabhängig per PWM regeln und Drehrichtung ändern: ich hab folgenen Code: #define MOTORB PD4 #define MOTORA PD5 /* fpwm = F_CPU/(Prescaller*Obergrenze)*/ TCCR1A |= (1<<WGM11)|(1<<COM1A1)|(1<<COM1B1); /* Modus 14: Fast PWM mit beliebiger Schrittzahl (festgelegt durch ICR1) nicht Invertiert(COM1x1)*/ TCCR1B |= (1<<WGM13)|(1<<WGM12)|(1<<CS12) | (1<<CS10); /*(WGM13 und WGM12 gehören zu Modi auswahl) CS = Prescaler 1024*/ ICR1 = 31250; /* Obergrenze */ /* Test Frequenz = 16MHz/(1024*31250) = 0,5Hz = 2s Periodendauer*/ OCR1A = 31250/2; /* Einschaltzeit MOTORA 50%*/ OCR1B = 31250/3; /* Einschaltzeit MOTORB 33%*/ DDRD |= (1<<MOTORA)|(1<<MOTORB); /* MOTORA und MOTORB als Ausgang*/ das klappt auch super. hab die beiden andern Eingänge des Motors jetzt erstmal mit Masse verbunden so laufen beide unabhängig. jetzt möchte ich auch die Drehrichtung ändern heißt ich müsste die beiden andern Eingänge jetzt auch am UC anschließen. Jetzt sind ja ORC1A und ORC1B die PWM Ausgänge um die dreh Richtung zu ändern müsste ich ja die jetzigen PWM Ausgänge auf Masse ansteuern und die Masse Kanal die PWM bekommen. Nur wie kann ich das bewerkstelligen. Dachte es über Interrups für Overflow und Comp Match der beiden Motoren nur was passiert, wenn beide wenn beide Motoren die selbe Frequenz haben dann würden ja beide COMP Interrups gleichzeitig aufgerufen und das ist ja ein Problem oder? oder gibt es dort bessere Lösungen?