Ich hab mal verschiedene Befehle im Simulator angesehen:Zitat von Goblin
GrußCode:Dim X As Word Dim I As Byte X.1 = 1 8 cycles I.1 = 1 8 Set X.1 7 Set I.1 5 X = X Or 1 16 I = I Or 1 7
Rolf
const wert = &B00100000
kann Bascom sehrwohl
Vor den Erfolg haben die Götter den Schweiß gesetzt
Aber geh, das hätt' ich jetzt nicht gedachtZitat von Vitis
![]()
Hast du gelesen, worum es geht ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Das liegt ja nur daran, dass es keinen Shift-Operator gibt, sondern nur einen Shift-Befehl. Sowas wieZitat von PicNick
CONST wert = 2 + 3
kann Bascom schon und wertet es auch zur Compilezeit aus.
Gruß
Rolf
sorry, aber die syntax 1<<5 erscheint mir eh
hirnrissig wer sich den Käse ausgedacht hat
hatte sadomasochistische Anwandlungen ...
wenn ich n bit 5 setzen möchte, dann mach ich
set variable.5 oder meinetwegen auch
variable = variable or &B00100000 ...
aber reinshiften, das dann doch vom compiler als
set compiliert wird ... sorry, nicht mein Ding.
dagegen ist asm ja richtig elegant ... SBI
Vor den Erfolg haben die Götter den Schweiß gesetzt
Na, da möcht ich aber doch den C verteidigen.
Bits braucht man (meistens) auf zwei Arten:
als Maske (&B00100000) für OR und AND
und als Bit-offset ( 5) für Bit-SET befehle
ein Port-Pin müßte man also zweifach definieren
#define V_PB5 5
#define M_PB5 0x20
das ist gefährlich bei Projekt Anpassungen etc und vor allem grad bei µC recht umfangreich
also definiert man nur
#define V_PB5 5
und die Maske eben direkt im Befehl
XXbyte |= (1 << V_PB5) oder
XXbyte &= ~(1 << V_PB5)
das ist dann nur Arbeit für den Compiler, zur Laufzeit kost' das nix
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo,
ist zwar schon etwas her aber wie wäre es mit dem Befehlen Bits() und NBits() zum stzen oder löschen einzelner Bits? Geht wunderbar und sieht übersichtlich aus.
zb.: Admux = Bits(adlar , Refs0)
In wieweit dies mehr Resourcen verbraucht kann ich allerdings nicht sagen.
Mfg
OEP
Lesezeichen