Union ile Tanımlanmış Butonlar ile Sleep Moda Geçme Sorunu

Başlatan Bahadır AYDINOĞLU, 27 Ağustos 2015, 13:14:11

Bahadır AYDINOĞLU

Merhaba arkadaşlar,
Aşağıdaki kodlarda gördüğünüz üzere union ile tanımladığım portb'ye bağlı butonlara belirli bir sürede basılmadığında PIC uykuya girsin istiyorum. Fonksiyon ile yapmak istiyorum bunu fakat başaramadım bir türlü :(.
Yardımcı olabilirseniz çok çok mutlu olurum. Kullandığım MCU PIC18F452...
Yazılımımın butonlarla alakalı kısmı da aşağıda.

typedef union _btntypeun
{
	struct
	{
		unsigned int On_Off   :1;   //B0   On_Off   
		unsigned int Down     :1;   //B1   Unused1
		unsigned int Left     :1;   //B2     Up
		unsigned int Up       :1;   //B3   Down
		unsigned int Menu     :1;   //B4   exit
		unsigned int Right    :1;   //B5   Enter
		unsigned int Unused1   :1;
		unsigned int Unused2   :1;
	}bits;
	unsigned int	BX;
}btntypeun;
btntypeun BTN;
.
.
.
.
.
.
void Get_Btn() // Bu fonksiyon butonları okumak için, asıl amacı da butona basıldığında pic ile devreyi açık tutmak.Bir kez daha bastığımızda da kapatmak.
{
	btn_port = ~PORTB & 0b00111110;   
	if(input(PIN_A4))
		bit_set(btn_port,0);
	else
		bit_clear(btn_port,0);
		
	if(old_btn_port == btn_port)
		BTN.BX = btn_port;

     old_btn_port = btn_port;
}