Hi,
danke für die schnelle Antwort. Mein Code sieht jetzt so aus:
Code:
#define PWM_init DDRD= _BV(PD4) | _BV(PD5);
#define upcounting TCCR1A = _BV(COM1A0) | _BV(COM1A1)
#define downcounting TCCR1A |= _BV(COM1A1)
#define T_prescaler_256 TCCR1B |= _BV(CS12)
#define T_stop TCCR1B = ~_BV(CS12) & ~_BV(CS11) & ~_BV(CS10)
void main(void){
....
outp(0xFF, DDRC); // Alle Ports von C als Output setzen
outp(0xFF, PORTC); // Alle Ports 0
outp(0xFF, DDRD); // Alle Ports von D als Output setzen
outp(0xFF, PORTD); // Alle Ports 0
PWM_init;
upcounting;
sbi(PORTC, 6);//Drehrichtung
cbi(PORTC, 7);//Drehrichtung
sbi(PORTD, 4);
T_prescaler_256;
for(i = 0; i < 1023; ++i){
OCR1B= i;
OCR1A= i;
ms_sleep(30);
}
....
}
Es funktioniert aber immer noch nicht. Ich habe eine printf()-Ausgabe in ndie FOR-Schleife gesetzt, die mir den Wert von i Anzeigt. Die Schleife wird ausgeführt, es passiert aber nichts. Irgendwann läuft sie ab und es schert niemanden.
Ich hoffe, dass ich nicht irgenein Register vergessen habe.
Danke!
Lesezeichen