mat Le 02/06/2002 à 15:48 J'ai défini un pointeur vers le registre DISP_CPR comme suit:
#define DISP_CR *(unsigned short *)0x4000000
Comment puis-je lui mettre 0x404 (MODE4 ET BACKGROUND 2) c'est à dire 0b0000010000000100 sans modifier les autres bits qui ont déjà des valeurs à part les 2 derniers.
Vive le coding gba.
www.codegba.fr.st
mat Le 02/06/2002 à 19:05 Qu'est ce que c'est que : "|="
Par contre moi j'ai essayé avec cette ligne de code:
DISP_CR = (DISP_CR && 0xfbf8) || 0x404 pour mettre à 0 les bits bg2 et les bits mode puis pour les mettre au valeur de 0x404 (1 pour bg2 100 pour mode) mais ça marche pas.
Pourquoi?
Vive le coding gba.
www.codegba.fr.st
mat Le 02/06/2002 à 20:03 Si j'ai bien compris ç'est équivalent à
DISP_CR = DISP_CR | 0x404
Vive le coding gba.
www.codegba.fr.st
mat Le 03/06/2002 à 07:03 Donc ça ne marchera pas à tout les coup:
Si t'a déjà le mode 1 (001) et que tu rajoute 0x4(100) tu auras le mode 5 au lieu du 4.
Vive le coding gba.
www.codegba.fr.st
0b001 | 0b100 == 0b101
il me semble, non ?
si tu veux avoir :
0b001 '+' 0b100 => 0b001
Il faut que tu change le bit 0 pour l'éteindre, et, en plus, alumer le bit 3...
quelque chose dans ce style je suppose :
0b001 & 0b000 => 0b000
(0b001 & 0b000) | 0b100 => 0b100
(j'ai testé que dalle, mais ça doit être quelque chose dans ce style)
& = ET bit à bit...
0 & 0 = 0
0 & 1 = 0
1 & 1 = 1