seri port interrupt ve delay_ms()

Başlatan pax, 30 Aralık 2013, 18:13:56

pax

seri porttan bilgi okurken kesme kullanıyorum . örneğin delay_ms(1000) dersek ve bu 1000ms'lik bekleme sırasında seri porta bilgi gelirse kesme oluşur mu? yoksa 1000 ms bitince mi kesme oluşur?

Tagli

delay bitmeden de kesme oluşur.

Dipnot: PicBasic Pro'da oluşmaz.
Gökçe Tağlıoğlu

pax

Alıntı yapılan: Tagli - 30 Aralık 2013, 18:18:48
delay bitmeden de kesme oluşur.

Dipnot: PicBasic Pro'da oluşmaz.


teşekkür ederim ccs c kullanıyorum .

selimkoc

Olay şudur;

Pic ana programda iş yaparken (beklemede bir iştir.) kesme oluştuğunda 0x04 adresine yani interrupt alt programına dallanır. Ana programdaki işi beklemeye alır. Kesmede işini bitirdikten sonra ana programda kaldığı yerden devam eder.

Donanım böyle çalışır. Derleyicilerde bu istikamette program derlerler. Derleyiciler asm ve hex koda dönüştürürler. Yani her derleyici aynı mantığı kullanmak zorundadır.

Daha teferruatlı bilgi için:

http://elektrokod.wordpress.com/2013/10/07/pic16f628-mikrodenetleyicinde-rb0-kesmesi-interrupt/


Tagli

Alıntı yapılan: selimkoc - 30 Aralık 2013, 21:34:09
Derleyicilerde bu istikamette program derlerler. Yani her derleyici aynı mantığı kullanmak zorundadır.
Maalesef durum pek öyle değil. PicBasic Pro gerçek anlamda kesmeleri hiç açmıyor aslında. Kendisi her komuttan sonra kesme bayraklarını yokluyor ve ona göre dallanıyor.

Neyse, konuyu dağıttım, kusra bakmayın.
Gökçe Tağlıoğlu