Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: Bahadır AYDINOĞLU - 27 Ağustos 2015, 13:14:11

Başlık: Union ile Tanımlanmış Butonlar ile Sleep Moda Geçme Sorunu
Gönderen: Bahadır AYDINOĞLU - 27 Ağustos 2015, 13:14:11
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;
}