Hallo McJenson,
Es sollte über einen Interrupt drei Tasten abgefragt werden.
Taste1 "PB3" soll den Motor mit 50% nach links laufen lassen.
Taste2 "PB4" soll den Motor mit 50% nach rechts laufen lassen.
Taste3 "PB5" soll den Moter auf 100% beschleunigen.
Nun das script erst ohne Interrupts, nur mal mit einer Taste.
Die LED geht an aber nder Motor läuft nicht.
mfgCode:#include <avr/io.h> #include <stdint.h> void pwminit() { // DDRD = (1<<PD5); TCCR1A = (1<<COM1B1)|(1<<WGM10)|(1<<WGM12); TCCR1B = (1<<CS10); OCR1B = 128; } void main (void) { DDRD=0x0c; // Port PD2 u. PD3 auf Port D als Ausgang PORTD=0x0c; // Pins PD2 u. PD3 auf Port D auf low DDRB &=~(1<<PB3); PORTB |=(1<<PB3); // DDRB=0x38; // Port B als Eingang // PORTB=0x38; // Pull-ups auf Port B ein // DDRB = 0b11111111; while(1) if ( PINB & ( 1<<PINB3 ) ) { PORTD |= (1<<PD5); PORTD |= (1<<PD2); // LED ein "Test" pwminit(); } else { PORTD &= ~(1<<PD2); // LED aus "Test" } }
Enterprise







Zitieren

Lesezeichen