Hallo Henk,
danke für deine Hilfe! Tatsächlich habe ich zweimal COM1A0 verwendet und auch anstatt PD4+PD5 PD5+PD6 als Ausgang deklariert. Das kann dann ja nicht funktionieren.
Nun habe ich folgenden Code:
Code:
//PWM
TCCR1A = 0x00;
TCCR1B = 0x00;
TCCR1A |= (1<<WGM10) | (1<<COM1A1) | (1<<COM1A0) | (1<<COM1B1) | (1<<COM1B0); //Timer konfigurieren
TCCR1B |= (1<<CS10) | (1<<CS12); //Prescaler 1024
//---------------------------------------------------------------------------------------------------------#
// Port D
PORTD = 0x00;
PORTD |= (1<<PD2) | (1<<PD3); //Default-Belegung
// RXD RS232 TXD RS232 INT0 INT1 PWM M1 PWM M2 Sound
DDRD = (0 << DDD0) | (1 << DDD1) | (0 << DDD2) | (0 << DDD3) | (1 << DDD4) | (1 << DDD5) | (1 << DDD7);
// Port C
PORTC = 0x00;
// Motor1.1 Motor1.2 Motor2.1 Motor2.2
DDRC = (1 << DDC4) | (1 << DDC5) | (1 << DDC6) | (1 << DDC7);
PORTC |= (1<<M1_D1) | (1<<M2_D1); //Fahrtrichtung
OCR1A = 255;
OCR1B = 100;
Das führt jetzt dazu, dass die Motoren mit steigender Zahl langsam werden! Ab etwa 230 tut sich garnichts mehr. Aber ansonsten scheint es doch zu funktionieren (hatte anfangs bedenken wegen der Antiproportinalen Motordrehzahl). Nochmal vielen Dank!
Lesezeichen