Rb0 interrupt kullanımı

Başlatan fatihvelid, 07 Eylül 2006, 15:04:09

fatihvelid

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)
{
}
}
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

westcoast

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.

fatihvelid

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)
{
}
}
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...