Bitleri and ve or ile değiştirmek

Başlatan baran123, 26 Ağustos 2015, 23:18:05

baran123

Olayı anlamak için basit bir state machine örneğini inceliyorum.STM için yapılmış bir öeneği XC ye uyarlarken hata veriyor.
Bu basit şeyleri sürekli unutmak beni çıldırtıyor.  :-[
#define LED_IO_PORT     PORTA
#define LED_PIN_NUMBER  0

case LED_STATE_OFF:
LED_IO_PORT &= (~(1<<LED_PIN_NUMBER)); //hata
break;
            
case LED_STATE_ON:
LED_IO_PORT |= (1<<LED_PIN_NUMBER); // hata
break;

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

baran123

#include <xc.h>// Buda lazım tabi yoksa derleyici nerden bilsin PORTA yı
//Eski uzay filmlerinde kullanılan aletlere verilen tepki "Ee uzay tabi lazım"

:)

ilhan_mkp

#define LED_IO_PORT     PORTA
#define LED_PIN_NUMBER  0

case LED_STATE_OFF:
LED_IO_PORT &= 0XFE;  // binary  11111110       portun bit0 silinir
break;
            
case LED_STATE_ON:
LED_IO_PORT &= 0XFE;  // binary  11111110      portun bit0 silinir
LED_IO_PORT |= 0X01;  // binary  00000001      portun bit0 1 yapılır
break;



MrDarK

Alıntı yapılan: z - 26 Ağustos 2015, 23:20:42
Hani bunun sivici mivici.

katılıyorum switch'siz case mi olur ?

Ayrıca kodun bi kısmını atmışsın buraya ne yaptığı belli değil :) Aldığın hata nedir belli değil. Biraz amatörce bir soru olmuş sankim :)
Picproje Eğitim Gönüllüleri ~ MrDarK

mehmet

Orada sıkıntı switch-case degil, daha oraya gelmeden hata
verdi sanıyorum. 8)
xc.h kütüphanesi eklenmediği için port tanımlamasında sıkıntı. 8)
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr