Picproje Elektronik Sitesi

DERLEYİCİLER => PIC C => Konuyu başlatan: fatihvelid - 07 Eylül 2006, 15:04:09

Başlık: Rb0 interrupt kullanımı
Gönderen: fatihvelid - 07 Eylül 2006, 15:04:09
16f84 kullanarak PortB'in 0. bitine bağlı butona basıldığında PORTA'nın 0. bitine bağlı ledi yakmaya çalışıyorum. Programı MikroC ile yazdım. Programın bir yerlerinde hata olmalı. Proteustanda simulasyonu var.
Proje dosyası ve simulasyonunu aşağıdaki linkten indirebilirsiniz.

Yardımınızı bekliyorum.

http://www.hemenpaylas.com/download/1517025/interrupt.rar.htm


Yazdığım C kodunuda vereyim.


void interrupt(void)
{
INTCON.INTF=0;
PORTA.f0=1;
}
void main()
{
TRISA.f0=0;
trisb.f0=1;
porta.f0=0;
INTCON=0b10010000;
OPTION_REG=0;
OPTION_REG.INTEDG=1;
while(1)
{
}
}
Başlık: Rb0 interrupt kullanımı
Gönderen: westcoast - 07 Eylül 2006, 17:16:35
http://www.hemenpaylas.com/download/1518756/interrupt_2.rar.html



void interrupt(void)
{
PORTA.F0=1;
INTCON.F1=0;
}
void main()
{
TRISA=0;
TRISB=0b00000001;
PORTA=0;
PORTB=0;
INTCON=0x90;
OPTION_REG.F6=1;
while(1)
{
}
}


MikroC'de proje ayarlarında mikrodenetleyicinin 18f452'ye göre ayarlandığını farkettim.
senin göndermiş olduğun dosyalarda ufak tefek değişiklikler yaptım çalıştı
kolay gelsin.
Başlık: Çıkan kenar interrupt
Gönderen: fatihvelid - 08 Eylül 2006, 10:02:04
Yukarıdaki kod inen kenar interrupt için,
çıkan kenar interrupt için OPTION_REG.F6=0 yapmanız yeterlidir.


Kodun son hali


void interrupt(void)
{
PORTA.F0=1;
INTCON.F1=0;
}
void main()
{
TRISA=0;
TRISB=0b00000001;
PORTA=0;
PORTB=0;
INTCON=0x90;
OPTION_REG.F6=0;
while(1)
{
}
}