Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Basit Bir Soru

Başlatan muhittin_kaplan, 10 Temmuz 2010, 14:19:00

muhittin_kaplan

Herkese İşlerinde Başarılar Dilerim.
PBP,Proton,Swordfish de İstediğim Kadar Düzenli Olmuyor.
CCS de Anladığım Kadarı İle Olmuyor.
Ansi C de(Hitech) De Denemedim.
ASM de oluyor.

Kesme İşlemleri İle Çalışırken 500 Ms gibi Uzun Bekleme (ben Yapmamda) Esnasında İnterrupt Alt Programına Girmiyor. Hangi Üst Seviyeli Dil de Donanım Kesmesi (Bekleme Esnasında Gidebilmek İçin) Oluşturur ?

ErsinErce

Listelediğiniz gibi Swordfish ve türevlerinde pause komutları interruptları kapatıyor,
CCS de bu tarz bir uygulama gerçekleştiremediğim için kesin birşey söyleyemeyeceğim,
fakat Hi-Tech(Orta Seviye Dil) de bu işlemi yapabiliyorsunuz. Hatta kesme içinde kesmeye de sokabiliyorsunuz.

JKramer


OG

Proton donanım kesmeleri güzel çalışıyor sanıyorum, düzensizlik nedir?
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

FullMetal

Yanlış hatırlamıyorsam bazı basic derleyiciler her komutu icra ederken kesme özelliğini pasif yapıyor komut icrası sonrası tekrar aktif yapıyor. Sanırım bunu demek istiyorsunuz değil mi? Eğer öyleyse yukarıdaki belirtilen C derleyicilerde bu sorunla karşılaşmazsınız.

Erol YILMAZ

Alıntı yapılan: muhittin_kaplan - 10 Temmuz 2010, 14:19:00
Kesme İşlemleri İle Çalışırken 500 Ms gibi Uzun Bekleme (ben Yapmamda) Esnasında İnterrupt Alt Programına Girmiyor. Hangi Üst Seviyeli Dil de Donanım Kesmesi (Bekleme Esnasında Gidebilmek İçin) Oluşturur ?

birçok görevi olan bir kodta, uzun süreli bir gecikmeyi delay_ms()  fonksiyonu kullanarak yapmak hiç uygun değildir.
Çok görevlilik (Multitasking) için geliştilmiş kod tekniklerine ihtiyaç vardır.

diğer türlü bir yol aramak çözüm değil, ancak çözümün geciktirilmesidir.

muhittin_kaplan

#6
Alıntı YapProton donanım kesmeleri güzel çalışıyor sanıyorum, düzensizlik nedir?
Eğer Eklenti Kurmazsanız (bsmv) Garanti Etmiyor Çalışacağını.
Allegro Hocam Gecikme yapacağım zaman Çoğunlukla en kısa zaman birimiyle Döngüye sokarak yaparım. Ama Bu derleyici üreticileri bunu aşmanın bir yolunu bulmalılar.
@FullMetal
CCS de kapatıyor.MicroC Nasıl Acaba ?

SpeedyX

#7
CCS ve Hi-tech de delay sırasında kesmeler kapatılmaz.

radres

Alıntı yapılan: SpeedyX - 10 Temmuz 2010, 21:22:43
CCS ve Hi-tech de delay sırasında kesmeler kapatılmaz.

HI-TECH derleyicisini bilmiyorum ama CCS C için doğru. Daha önceki bir konuda denemeler sonucunda şu sonuca varmıştık.

Tartışmanın sonuçlarını aşağıya özetlemeye çalışayım.

1- CCS C'de sadece ana programda delay komutları kullanılıyorsa (kesme fonksiyonlarında kullanılmıyorsa) delay komutu icra edilirken kesme kelirse program kesmeye gidiyor. Kesme dönüşü delay komutu kaldığı süreden devam ediyor (Bu nedenle delay komutu icra edilirken kesme meydana gelirse delay komutu ile belirtilen süre kesme düresi kadar uzar)

2- CCS C'de kesme fonksiyonları içinde delay komutları kullanılırsa ana programdaki delay komutları çalışırken herhangi bir kesme gelirse program kesmeye gitmiyor.

3- Yukarıda belirtilen 2. durumu önlemek için kesme fonksiyonu üstünde tanımlanan #use delay(clock=XXXXXXX) komutunun aynısını ana program da "void main()" komutunun üstüne de koymak gerekir. Bu işlem yapılırsa 2. durumdaki sorun ortadan kalkıyor ve delay komutları hiç bir suretle kesmeleri engellemiyor.

SpeedyX

Alıntı yapılan: radres - 10 Temmuz 2010, 21:30:553- Yukarıda belirtilen 2. durumu önlemek için kesme fonksiyonu üstünde tanımlanan #use delay(clock=XXXXXXX) komutunun aynısını ana program da "void main()" komutunun üstüne de koymak gerekir. Bu işlem yapılırsa 2. durumdaki sorun ortadan kalkıyor ve delay komutları hiç bir suretle kesmeleri engellemiyor.
Şöyle genelleyebiliriz; eğer bir fonksiyon hem interrupt rutininde hemde main-loop ta kullanılıyorsa o fonksiyona girilirken kesmeler kapatılıyor. Bu durumdan kurtulmanın yolu o fonksiyondan iki tane yapmak, birini interrupt da, diğerini main-loop da kullanmak. Yada biryerlerde bir ayar bulup o özelliği kapatmak. Rusların deyimiyle дуракоустойчив bir derleyici yapmaya çalışmış adamlar :)

radres


Maxim

Alıntı yapılan: muhittin_kaplan - 10 Temmuz 2010, 19:57:59
Alıntı YapProton donanım kesmeleri güzel çalışıyor sanıyorum, düzensizlik nedir?
Eğer Eklenti Kurmazsanız (bsmv) Garanti Etmiyor Çalışacağını.

burayı biraz açarmısın?
proton delay komutu sırasında kesmeye gidebiliyor, bilmediğimiz nedir ? detay nedir ?

muhittin_kaplan

http://users.picbasic.org/Howto/BISVS/BISVS.htm
Eklenti bu, Sanırım daha önce konusu geçti. Hardware interrupt ta,  int. alt programı uzun sürerse garanti etmiyor. Bu eklentiyi kullanın diyor Tim BOX

Maxim

Alıntı yapılan: muhittin_kaplan - 11 Temmuz 2010, 01:19:41
http://users.picbasic.org/Howto/BISVS/BISVS.htm
Eklenti bu, Sanırım daha önce konusu geçti. Hardware interrupt ta,  int. alt programı uzun sürerse garanti etmiyor. Bu eklentiyi kullanın diyor Tim BOX

valla hocam ben bundan bişey anlamadım ,
çok eski versiyonlara ait bir çözüm olmasın bu ?

programı derledim hatta led sürelerini 600ms yaptım
dediği gibi değilde hatta hatta int içerisindeki  INT#STARTH:   satırlarınıda kaldırarak normal derledim ve
test ettim gayet güzel güzel çalışıyor , yoksa benmi anlamadım nedir ?

basıyorum butona seriden gönderme yapıyor, bu arada led yanıp sönmeye devam ediyor !
ne bekleme var ne gecikme

PIC16_ALCD_VHB.DSN

teknikelektronikci

maxim hocam senin eski nick nedir? cünkü u nicki ilk kez görüyorum :) mesaj sayina bakincada yeni üye olmadigin kesin :)
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!