Gast
#2658100
Hallo Zusammen Ich habe heute mit dem PIC32 angefangen, habe schon mit PIC18 schöne Erfolge erzielt. Meine Frage was ist der Unterschied bei dem nachfolgenden Programmcode. Der erste ist aus einem Demo des 32er Kit, wobei es mir nur um die IOs geht, Port D. ************************************************************** // configure IOPORTS PORTD.RD0, RD1 as outputs // could also use mPORTDSetPinsDigitalOut(BIT_6 | BIT_7); PORTSetPinsDigitalOut(IOPORT_D, BIT_0 | BIT_1); // initialize the port pins states = output low PORTClearBits(IOPORT_D, BIT_0 | BIT_1); // PORTD.RD6, RD7 as inputs // could also use mPORTDSetPinsDigitalIn(BIT_6 | BIT_7); PORTSetPinsDigitalIn(IOPORT_D, BIT_6 | BIT_7); while(1) { if(PORTDbits.RD6 == 0) // 0 = switch is pressed { PORTSetBits(IOPORT_D, BIT_0); // RED LED = on (same as LATDSET = 0x0001) if(last_sw_state == 1) // display a message only when switch changes state { DBPRINTF("Switch SW1 has been pressed. \n"); last_sw_state = 0; } } else // 1 = switch is not pressed { PORTClearBits(IOPORT_D, BIT_0); // RED LED = off (same as LATDCLR = 0x0001) if(last_sw_state == 0) // display a message only when switch changes state { DBPRINTF("Switch SW1 has been released. \n"); last_sw_state = 1; } } }; ******************************************************************* Diesen Code habe ich geschrieben so wie ich es eben vom PIC18 kenne. Er ist um einiges einfacher und es werden die Ausgänge (Leds) angesteuert und die gedrückte Taste erkannt, so wie oben. ********************************************************************* #define Led0 LATDbits.LATD0 #define Led1 LATDbits.LATD1 #define Led2 LATDbits.LATD2 #define Taste0 PORTDbits.RD6 #define Taste1 PORTDbits.RD7 #define Taste2 PORTDbits.RD13 TRISD = 11111000; if(Taste0 ==1){ Led0=1; } else{ Led0=0; } *************************************************** Bitte um eure Meinung. Danke. Lg. Johann K.