Gast
#2421541
Hallo Zusammen Gibt es beim PIC18 kein allgemeines Register (z.B. R0, B, ACC usw.) für eine bitweise Bearbeitung. z.B. R0 = ucTest; if (R0.2==1){ //ist Bit2 gesetzt .... } Bitte. Danke.
|
Anzeige
|
PIC18 allgemeines Register für bitweise Bearbeitung
Gast
#2421541
Hallo Zusammen Gibt es beim PIC18 kein allgemeines Register (z.B. R0, B, ACC usw.) für eine bitweise Bearbeitung. z.B. R0 = ucTest; if (R0.2==1){ //ist Bit2 gesetzt .... } Bitte. Danke.
Gast
#2421547
alle PICs haben Befehle für die bitweise Bearbeitung, z.B. BSF LATA, 0 ; setze Bit 0 des registers LATA BCF LATB, 5 ; setze Bit 5 des registers LATB
Gast
#2421548
alle PICs haben Befehle für die bitweise Bearbeitung, z.B. BSF LATA, 0 ; setze Bit 0 des registers LATA BCF LATB, 5 ; lösche Bit 5 des registers LATB
Gast
#2421554
Danke, das LATA (mit xxxbits.LATA0)kenn ich natürlich, ich hätte eigentlich ein Register gesuch das ich einfach beschreiben kann ohne Auswirkung auf die Ausgänge der MC.
Gast
#2421565
Für C code vielleicht sowas ?
union BITFIELD
{
struct BITS
{
unsigned char bit0:1;
unsigned char bit1:1;
unsigned char bit2:1;
unsigned char bit3:1;
unsigned char bit4:1;
unsigned char bit5:1;
unsigned char bit6:1;
unsigned char bit7:1;
};
unsigned char mybyte;
BITS bits;
};
BITFIELD b;
b.mybyte = 5;
b.bit5 = 1;
b.bit6 = 0;
...
Für Syntax keine Gewähr, aber das Prinzip sollte klar sein ... :)
Gruß
Tobi
Klatec schrieb: > Danke, das LATA (mit xxxbits.LATA0)kenn ich natürlich, ich hätte > eigentlich ein Register gesuch das ich einfach beschreiben kann ohne > Auswirkung auf die Ausgänge der MC. Das funst mit JEDEM Fileregister! BSF FileregisterXY, 0 ; setze Bit 0 des FileregisterXY BCF FileregisterYX, 5 ; lösche Bit 5 des FileregisterYX Da sollte das in C wohl ähnlich simpel funktionieren!?
Gast
#2421642
Danke Tobi Mit einem ähnlichen Gebilde kann ich nun aus einem Byte die Bits auswerten. Lg. Johann K. Antwort schreiben |
Anzeige
|