Hi-Tech C kesme özellikleri nelerdir ?

Başlatan AsHeS, 27 Haziran 2012, 02:17:46

AsHeS

Hi-Tech C derleyicisinde kesme fonksiyonu için "static void interrupt "başlığını kullanacağım lakin aklımda bir iki soru var çoklu kesme kullanacaksak bu çoklu kesmeleri ayırabilir miyiz  bu başlıktan yani anlatmak istediğim "static void interrupt TMR0"  başlığı TİMER0 kesmesine" static void interrupt AD" sadece çevirici kesmesine işaret ettirebilir miyiz ya da herhangi bir şekilde bu kesmelerin fonksiyonlarını ayırabilir miyiz ?Benim aklıma gelen yöntem "static void interrupt" fonksiyon başlığının içeriğinde kesme bayraklarını kontrol ederek hangi kesmenin geldiğini belirlemek fakat bu yöntem çok hoşuma gitmedi internette bulduklarım hep tek kesmenin üzerinden anlatılmış şeylerdi.Yardımlarınız için şimdiden teşekkür ederim.

XX_CİHAN_XX

http://ww1.microchip.com/downloads/en/devicedoc/htc_pic_manual.pdf
Hi - tech C El kitabı sayfa 86 da belirtildiği üzere tek bir kesme vektörü üzerinden Flag sorarak bu iş yapılmaktadır.
Örneğin uart kesmesi için RCIF ye bakarken Portb değişim kesme için RBIF flagini sormak suretiyle tek bir kesme vektöründe birden çok kesme kaynağı kontrol edilebilir. Hangi kaynaktan kesme oluştuğunu tespit edip işlem yaparsınız. İşlem sonunda kesmeden çıkmadan önce set olan ilgili kesme flagini sıfırlamayı unutmayın. CCS C derleyicisinde dediğiniz gibi ayrı fonksiyonlar altında bu işlem toplanmıştır ancak arka planda olan şey yine hi tech c deki gibi olmaktadır. CCS C sadece bunu kullanıcıya yansıtmayarak biraz daha okunaklı program yazılmasını sağlamaya çalışmıştır. Fakat programcı arka planda aslında ayrı yazdığını sandığı her bir kesme fonksiyonun hi tech te olduğu gibi tek bir fonksiyon altında birleştiğini görmez.
Uzun lafın kısası bunu başka yolu yoktur.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

AsHeS

Alıntı yapılan: XX_CİHAN_XX - 27 Haziran 2012, 02:58:30
http://ww1.microchip.com/downloads/en/devicedoc/htc_pic_manual.pdf
Hi - tech C El kitabı sayfa 86 da belirtildiği üzere tek bir kesme vektörü üzerinden Flag sorarak bu iş yapılmaktadır.
Örneğin uart kesmesi için RCIF ye bakarken Portb değişim kesme için RBIF flagini sormak suretiyle tek bir kesme vektöründe birden çok kesme kaynağı kontrol edilebilir. Hangi kaynaktan kesme oluştuğunu tespit edip işlem yaparsınız. İşlem sonunda kesmeden çıkmadan önce set olan ilgili kesme flagini sıfırlamayı unutmayın. CCS C derleyicisinde dediğiniz gibi ayrı fonksiyonlar altında bu işlem toplanmıştır ancak arka planda olan şey yine hi tech c deki gibi olmaktadır. CCS C sadece bunu kullanıcıya yansıtmayarak biraz daha okunaklı program yazılmasını sağlamaya çalışmıştır. Fakat programcı arka planda aslında ayrı yazdığını sandığı her bir kesme fonksiyonun hi tech te olduğu gibi tek bir fonksiyon altında birleştiğini görmez.
Uzun lafın kısası bunu başka yolu yoktur.
Hocam bahsettiğiniz yolu söylediğim gibi çok hoşlanmadığım için forumda ki sizin gibi hakim arkadaşlara sorayım dedim.CCS C yi kullandım fakat işlevsel gelmediği için bıraktım (asm ile başladım programlamaya)Hi-Tech te de böyle bir yol yokmuş anladığım kadarı ile.Tavsiyeleriniz için ayrıca teşekkür ederim.

arslan74

Sorun Hitech ile alakali degil. Bu sorun 8bit PIC mimarisinden kaynaklaniyor. Sizinde istediginiz vektorel kesmedir. Onu PIC32 bulabilirsin. 8bit islemciletin cogunda vektorel kesme bulunmuyor. Bu istediginiz cok onemli ise pic32 Ye gecin.

AsHeS

Alıntı yapılan: arslan74 - 27 Haziran 2012, 09:58:28
Sorun Hitech ile alakali değil. Bu sorun 8bit PIC mimarisinden kaynaklaniyor. Sizinde istediginiz vektorel kesmedir. Onu PIC32 bulabilirsin. 8bit islemciletin cogunda vektorel kesme bulunmuyor. Bu istediginiz cok onemli ise pic32 Ye gecin.
Pek bir önemi yok hocam  yazılımla çözülebilecek birşey sonuçta.Tavsiyeniz için teşekkür ederim.