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.


Code:
#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"
   	}     

}
mfg
Enterprise