Hallo,
ich benutze auch die RN-Control, allerdings mit einem externen L298 als Motortreiber.
Ich verwende folgenden Code, welcher allerdings nur einen Motor ansteuert:
Code:
int main(void)
{
//---------------------------------------------------------------------------------------------------------#
// I/O Konfiguration
// Port A (ADC)
// US Front Batterie RN-Taster
DDRA = (0 << DDA0) | (0 << DDA6) | (0 << DDA7);
// Port B
PORTB = 0x00;
// Port C
PORTC = 0x00;
// Motor1.1 Motor1.2 Motor2.1 Motor2.2
DDRC = (1 << DDC4) | (1 << DDC5) | (1 << DDC6) | (1 << DDC7);
// Port D
PORTD &= (1<<PD2) | (1<<PD3) | (1<<PD4) | ~(1<<PD5) | ~(1<<PD6) | ~(1<<PD7); //Default-Belegung
// RXD RS232 TXD RS232 INT0 INT1 Test PWM M1 PWM M2 Sound
DDRD = (0 << DDD0) | (1 << DDD1) | (0 << DDD2) | (0 << DDD3) | (0 << DDD4) | (1 << DDD5) | (1 << DDD6) | (1 << DDD7);
//---------------------------------------------------------------------------------------------------------#
PORTC |= (1<<PC4) | (1<<PC6); //Fahrtrichtung
TCCR1A = 0x00; //Timer alles auf 0
TCCR1B = 0x00;
TCCR1A |= (1<<WGM10) | (1<<COM1A1) | (1<<COM1B1); //Timer konfigurieren
TCCR1B |= (1<<CS10) | (1<<CS12);
OCR1BL = 255;
OCR1AL = 255;
//---------------------------------------------------------------------------------------------------------#
return(1);
}
Eigentlich sollte damit doch beide PWM Ausgänge voll durchschalten, oder? Wo liegt der Fehler?
Wenn ich die PWM-Pins am Motortreiber tausche, dreht entsprechend der andere Motor, das scheint also zu funktionieren. Danke für eure Unterstützung!
Lesezeichen