aktivieren von ports und RB3 RB4 auf dem pic 18F4550

Ich geschrieben habe, dieses Programm in mplab v8.63 mit c-compiler C18 auf dem pic 18F4550. wenn ich auf den Knopf drücke auf mein picdem (S3) und es ist eine led angeschlossen, die auf RB5 (mit einem Widerstand), dann geht die led auf. Wenn ich drückte auf (S3) und es gibt ein led an RB4, das die led nicht auf (während ich dies erwartet) das gleiche mit RB3. Thit ich etwas vergessen einzustellen?

Ziel ist es, für die rote, grüne und Blaue LED separat gemessen mit einem LDR. aber zuerst muss ich offensichtlich ports RB5, und RB3 RB4.

#pragma code
/******************************************************************************/

void main (void)
{   

    TRISD = 0x00;               //PORTD  as output
    TRISB = 0b00110000;         //RB4 en RB5 as input
    TRISA = 0x00;               //RA output

    RCONbits.IPEN = 0;          //priority
    INTCONbits.GIE = 1;         //enable interrupt
    INTCONbits.RBIE = 1;        //interrupt portB on

    while(1)
    {   
        _asm sleep _endasm  
    }
}

#pragma interrupt ISR
void ISR (void)
{
    //int red= 01110010011011110110111101100100;
    int on = 1;
    int off = 0;
    if (INTCONbits.RBIF==1)
    {
        if(PORTBbits.RB5==0)        //S3 pressed?
        {
            LATDbits.LATD1 ^= 1;    //D2 toggle
            LATAbits.LATA2 ^= on;
        }
        if(PORTBbits.RB4==0)
        {
            LATDbits.LATD1 ^= 1;    //D2 toggle
            LATAbits.LATA2 ^= on; 
        }
        if(PORTBbits.RB3==0)
        {
            LATDbits.LATD1 ^= 1;    //D2 toggle
            LATAbits.LATA2 ^= on; 
        }

    }   
    INTCONbits.RBIF = 0;
}

InformationsquelleAutor user001 | 2011-03-22

Schreibe einen Kommentar