Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: z - 18 Haziran 2014, 11:18:03

Başlık: Interrupt rutini - blokaj
Gönderen: z - 18 Haziran 2014, 11:18:03
ADC interrupt ile ilgili şu problem dikkatimi çekti.

Timer, ADC ye start veriyor. ADC int ürettiğinde int rutini içinde ADC değerlerini okuyorum.

Eğer bir başka int rutini içine uzunca bekleme yapan bir gecikme oluşturursam int rutininden çıksam bile bir süre sonra artık ADC int oluşmuyor.

Normalde kodlarımda bu tip gecikmeler yok. Programa eklemeler yaptığımda sorun olursa sorunu bulmak adına debug yaparken bu tip gecikmeli rutinler koyuyorum. Bahsettiğim olayın üstüne gitmedim. (Timer mı susuyor vs bakmadım)

Peş peşe gelen ADC interruptlar uzunca süre cevaplamadım diye daha sonra şartlar elverdiğinde ADC int rutinine girilmemesi bana mantıksız geldi.
Başlık: Ynt: Interrupt ruti - blokaj
Gönderen: Icarus - 18 Haziran 2014, 11:38:58
Interrupt level'i ve stack'i sonsuz uzunlukta değil.
Başlık: Ynt: Interrupt ruti - blokaj
Gönderen: z - 18 Haziran 2014, 12:23:23
İyi de ADC int, bir başka int rutini işlendiği ve önceliği olmadığı için zaten cevaplanmıyor. Cevaplanmayınca da stacka atılan bir şey yok.
Başlık: Ynt: Interrupt ruti - blokaj
Gönderen: kimlenbu - 18 Haziran 2014, 12:40:00
Hocam kaç interrupt var ve öncelikleri nelerdir ?
Başlık: Ynt: Interrupt rutini - blokaj
Gönderen: z - 18 Haziran 2014, 12:51:12
Sadece 2 int var. Öncelikleri de eşit.
Başlık: Ynt: Interrupt rutini - blokaj
Gönderen: CLR - 18 Haziran 2014, 13:12:23
Muhtemelen flag'larden bazıları asılı kalıyordur(interupt, over, error vs. flag gibi), silinmedikleri için yeni işlemler gerçekleşmiyordur.