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;
}