Hallo zusammen,

ich habe schon wieder mal n problemchen...

Ich habe eine kleine Testplatine gebaut um einen motor Per PWM anzusteuern. Kleines Testprogramm geschrieben - läuft nicht. Kann mir jemand sagen woran es liegen könnte? Die Tasten "anaus" für start&stopp und "schnell" für das drehzahlsignal(1 linkslauf,0 rechtslauf) reagieren einfach nicht...

Code:
/*  * File:   main.c
 * Author: Ben
 *
 * Created on 9. April 2014, 20:55
 */




#include <stdio.h>
#include <stdlib.h>
#include <htc.h>


#define _XTAL_FREQ 20000000


#define PWM     PORTBbits.RB3   //PWM out
#define LR      PORTBbits.RB7   //Signal für richtung
#define CHA     PORTBbits.RB1   //Lichtschranke teilA
#define CHB     PORTBbits.RB2   //Lichtschranke TeilB
#define REF     PORTBbits.RB4   //Fork 1 - REF
#define LMI     PORTBbits.RB5   //Fork 2 - LMI
#define END     PORTBbits.RB6   //Fork 3 - END
#define ANAUS   PORTBbits.RB0   //Start/Stopp
#define schnell PORTAbits.RA1   //Schneller
#define langsam PORTAbits.RA2   //Signal links/rechtslauf


char istaus;


/*
 * 
 */
__CONFIG(FOSC_HS  & WDTE_OFF & MCLRE_OFF & LVP_OFF & CP_OFF & BOREN_OFF);


void pwm_an(void);
void pwm_aus(void);


//void interrupt start_int (void){


  


//}


void init(void);


void main(void){
    init();
    while(1){
        if ((ANAUS == 1) && (istaus == 1)){
            pwm_an();
            __delay_ms(30);
        }
        if ((ANAUS == 1) && (istaus == 0)){
            pwm_aus();
            __delay_ms(30);
        }


        if (schnell == 1){
            LR = !LR;
            __delay_ms(30);
        }
    }


}


void pwm_an(void){
    CCP1CON = 0b1100;
    istaus = 0;
}


void pwm_aus(void){
    CCP1CON = 0x00;
    istaus = 1;
}




void init(void){


    TRISA = 0b000110;   //Ein-Ausgänge einstellen
    TRISB = 0b01110111; //Ein-Ausgänge einstellen
    CCP1CON = 0x00;     //PWM aus
    INTE = 1;           //Int an
    GIE = 1;            //Int an
    PEIE = 1;           //Int an
    RBIE = 1;           //Int an bei RB 4..7
    PORTA = 0x00;       //Ausgänge 0setzen
    PORTB = 0x00;       //Ausgänge 0setzen
    T2CKPS0 = 1;        //Vorteiler 4:1
    T2CKPS1 = 0;        //Vorteiler 4:1
    TMR2ON = 1;         //Timer2 an (fuer pwm)
    PR2 = 0x7C;         //Tacktung
    CCPR1L = 0x3E;      //Tastverhältnis
    CMCON = 0x07;       //Comparator aus
    istaus = 1;
    di();               //alle interrupts deaktivieren
    LR = 1;
                
    


}
Danke schonmal für hilfe und ideen

Gruß
Frodo