Hi Leute,
ich bin seit meinem letzten Post etwas weitergekommen und zwar nutze ich jetzt den pic18f2550 vom Microchip und die Programmieroberfläche von Microchip (MPLAB IDE - cc1.
mein Problem ist nun, wie kann ich ein Bit aus einer "unsigned char" Variable abfragen? unsigned char bedeutet ja, dass ich einen Rahmen von 0 bis 255 habe... aber wie kann ich mir da das vierte von den 8Bit auskoppeln und dieses verknüpfen? Es geht um die Variable "value"...
Taster ist für den Integralgeber geschrieben und funktioniert soweit ganz gut!
GreetzCode:#include <p18f2550.h> //***************Variablen festlegen*************** char oldA, oldB, Power; unsigned char value; //***************Konfiguratioswort***************** void config (void) { UCFG=0x08; UCON=0x00; TRISA=0b00000000; TRISB=0b00000000; #define SCKL_PGA PORTBbits.RB1 TRISC=0b00110100; #define K1 PORTCbits.RC0 #define K2 PORTCbits.RC1 #define START PORTCbits.RC2 #define A PORTCbits.RC4 #define B PORTCbits.RC5 #define CS_PGA PORTCbits.RC6 #define SDI_PGA PORTCbits.RC7 } //***************loop1***************************** void loop1 (void) { int i; for (i=0; i<118; i++); } //***************loop2***************************** void loop2 (void) { unsigned short long i; for (i=0; i<118909; i++); } //***************Start***************************** void Start (void) { if (START && !K1 && !K2) { K1=1; loop2(); loop2(); K2=1; Power=1; loop1(); while (START); } } //***************Ende****************************** void Ende (void) { if (START && K1 && K2) { K2=0; loop2(); loop2(); K1=0; Power=0; loop1(); while (START); } } //***************Taster**************************** void Taster (void) { loop1(); //Verzögern if (!((oldA==A)&&(oldB==B))) //nach Änderungen suchen { if (oldA&&!oldB&&A&&B&&(value<255)) //Regler nach rechts { value++; //lauter loop1(); //Verzögern while (B); //warten bis Signalende } if (oldB&&!oldA&&A&&B&&(value>0)) //Regler nach links { value--; //leiser loop1(); //Verzögern while (A); //warten bis Signalende } oldA=A; //Altdaten speichern oldB=B; //Altdaten speichern } } //***************LCD******************************* void LCD (void) { } //***************PGA******************************* void PGA (void) { } //***************main****************************** void main (void) { config(); //Konfigrautionswort aufrufen oldA=0; oldB=0; value=0; Power=0; PORTA=0; PORTB=0; PORTC=0; Sprungmarke: if (!Power) { Start(); } if (Power) { Taster(); Ende(); } goto Sprungmarke; }
Edit von BASTIUniversal: Bitte, bitte, bitte die Code-Kästchen verwenden!!






Zitieren

Lesezeichen