Arama butonu
Bu konudaki kullanıcılar: 1 misafir
26
Cevap
1519
Tıklama
0
Öne Çıkarma
Pic basic RB0 kesmesi sorunu
L
18 yıl
Yarbay
Konu Sahibi

slm arkadaşlar kesme ile ilgili bir sorunum var. programın kodları aşşağıda. rb0 düşen kenar tetiklemeli olmak zorunda, öylede oluyor ancak problem şu; düşen kenar oldukdan sonra kesme geldi yazıyor lcd de ancak kesmeden çıkmıyor. sanki sürekli düşen kenar tetiklemesi alıyormuş gibi davranıyor ve 1 sn aralıklarla kes registerini 1 arttırarak sayıyor. kesme yok yazısıda sadece kesme oluşmadan önce yzıyor sonra ekrana gelmiyor. sorunumu anlatabilmişimdir umarım biraz acil teşekkür ederim yardımlar için şimdiden


DEFINE LCD_DREG PORTB 'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT 4 'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_EREG PORTB 'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 3 'LCD Enable Bacağı Hangi bite bağlı ?
DEFINE LCD_RSREG PORTB 'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT 2 'LCD RS bacağı Hangi Bite bağlı ?
DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor
@ DEVICE pic16F877A
@ DEVICE pic16F877A, WDT_off
@ DEVICE pic16F877A, PWRT_Off
@ DEVICE pic16F877A, PROTECT_OFF
@ DEVICE pic16F877A, XT_OSC
@ DEVICE pic16F877A, bod_off
trisb=%00000001
portb=0
i var byte
kes var byte
INTCON=%10010000
OPTION_REG=%00110000
on interrupt goto kesme
kes=0
ana:
lcdout $fe,1
lcdout "kesme yok"
for i=0 to 20
pause 10
next i
goto ana
disable interrupt
kesme:
kes=kes+1
lcdout $fe,1
lcdout "kesme geldi"
lcdout $fe,$c0, #kes
pause 1000
resume
enable interrupt
end

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



T
18 yıl
Binbaşı

Kesmeden çıkmadan önce INTCON registerinin 1.biti olan INTF bayrağını silmelisiniz.


Bu mesaja 1 cevap geldi.
L
18 yıl
Yarbay
Konu Sahibi

quote:

Orjinalden alıntı: tyilgin1

Kesmeden çıkmadan önce INTCON registerinin 1.biti olan INTF bayrağını silmelisiniz.

Çok çok teşekkür ederim. Allah razı olsun


Bu mesaja 2 cevap geldi.
R
18 yıl
Yarbay

kesmeden çıkıyor çıkmasınada INTF olduğudan tekrar kesme geldi zannediyor.
PIC C gibi derleyicilerde return ile kesme den çıkıldığında, INTF bayrağını siliyormu acaba, deneyen varmı???





< Bu mesaj bu kişi tarafından değiştirildi r2d2droids -- 21 Ocak 2008; 10:28:43 >
Bu mesaja 1 cevap geldi.
T
18 yıl
Binbaşı

quote:

Orjinalden alıntı: cidik
Çok çok teşekkür ederim. Allah razı olsun

Rica ederim, Faydam dokunduğuna sevindim..


quote:

Orjinalden alıntı: r2d2droids

kesmeden çıkıyor çıkmasınada INTF olduğudan tekrar kesme geldi zannediyor.
PIC C gibi derleyicilerde return ile kesme den çıkıldığında, INTF bayrağını siliyormu acaba, deneyen varmı???


Hocam diğer C derleyicilerde fark edermi bilmiyorum ancak Hi-Tech te manuel olarak silmek gerekiyor.





< Bu mesaj bu kişi tarafından değiştirildi tyilgin1 -- 21 Ocak 2008; 20:08:12 >

L
18 yıl
Binbaşı

quote:

Orjinalden alıntı: r2d2droids

kesmeden çıkıyor çıkmasınada INTF olduğudan tekrar kesme geldi zannediyor.
PIC C gibi derleyicilerde return ile kesme den çıkıldığında, INTF bayrağını siliyormu acaba, deneyen varmı???


CCS'de interrupt fonksiyonu demek zaten çıkışta ilgili bayrağın sıfırlandığı fonksiyon demek. Ama sadece bu kadar. Yani mesela fonksiyon içinde başka bir interrupt oluşmuşsa o görmezden geliniyor. Güvenilir bir tasarım yapmak için başka bir kesme bayrağı var mı diye kontrol edecek ve gerekirse yönlendirme rutinine atlatacak şekilde yama yapmak gerekir.


Bu mesaja 1 cevap geldi.
R
18 yıl
Yarbay

tyilgin1
hi-tech den böyle bir yenilik beklemem zaten. adamların compiler için yazdıkları manual bile çorba gibi veya bana öyle geliyor.

Liu Kang
interrupt içinde interrupt kabul edilmez biliyorsun.
peki CCS de interrupt tan çıkarken INTF i silmek istemiyorum diyelim. bu durumda ne yapmam gerekiyor? return yazmadan mı fonksiyonu bitirmeliyim. yoksa derleyici ben ne dersen diyeyim INTF i silerek mi ana programa geri dönüyor?
yani sormak istediğim; konu sahibi arkadaşın yaptığı hatayı, CCS C de bilerek ve isteyerek nasıl yapabilirim?
garip bir soru oldu, kusura bakamayın...


Bu mesaja 1 cevap geldi.
M
18 yıl
Binbaşı

R
18 yıl
Yarbay

kaynak için teşekkürler.
rar şifresi nedir???


Bu mesaja 1 cevap geldi.
L
18 yıl
Binbaşı

Benim dediğim kesme içinde kesme oluşması değil. Bayrak olayı ne için var? Bunun avantajını kullanmıyorlar ki. Neyse. Bayrak biti sıfırlanmasın diye ne yapılabilir anlatayım. Programı derledikten sonra Viev->C/ASM list ile assembly kodlara bakarsın. (C kodlarını açıklayan Asm kodları) Kesme fonksiyonunda "}" işaretinin asm dökümüne bak, hangi adrese atlanıyorsa "}" işaretinden önce kendin atlat Programa daha fazla kesme fonksiyonu eklediğinde bu mutlak adreslerin değişme ihtimali olacaktır ona göre.


Bu mesaja 1 cevap geldi.
R
18 yıl
Yarbay

ama sen sıfırlandıktan sonra ne yapılabilir onu anlattın.
teşekkürler bilgiler için...


Bu mesaja 1 cevap geldi.
L
18 yıl
Binbaşı

Sıfırlayan komut zaten "}" rutininde. Ondan önce atlatıyorsun. "}" için sadece şu iki komut var mesela atıyorum:

BCF FF2.1
GOTO 00B0

Sen fonksiyonun en sonunda #ASM GOTO 00B0 yazdın mı BCF komutunu atlamış olacaksın.


Bu mesaja 2 cevap geldi.
M
18 yıl
Binbaşı

Şifreyi unuttuğum için özür dilerim,sadece rarda şifre var sonra istemediği için unutmuşum.
Şifre :www.picproje.org

C ile ilgili(genel C ) güzel bir kitap aşağıda.
C kitabı,

http://rapid-share.com/files/68140072/CFull3_11.pdf.html

şifre: cdernek


Bu mesaja 1 cevap geldi.
L
18 yıl
Binbaşı

Çok iyi bir kitapmış. Önemli olduğu için internet kafedeki arkadaşlar için bir sunucuya daha yükleyeyim iyi olur. İnternet kafelerde bu rapidle ilgili ne problemler yaşıyoruz kafede sürünmeyen bilmez http://www.mediafire.com/?eynctqn2yyc


Bu mesaja 1 cevap geldi.
M
18 yıl
Binbaşı

@Liu Kang, madem bir hayır yapacaksın, az daha el at.
Başlık pbp ile ilgili idi ama C ye döndü yani kaybolur gider,arayanda bulamaz.
C kaynak ya da C kitaplar diye bir başlık aç ve buradaki linkleri oraya toplayıver bir zahmet.

Madem C yi seviyorsunuz bir kaç kitap daha,bu seferkiler rapid değil.
Türkiş Nigel Gardner:

http://www.4shared.com/file/14686327/4491880/trki.html

CCS C örnekler (CCS C ile pic programlama-Serdar Çiçek kitabını mutlaka alın) kitapdaki uygulamalar,kitapda her satırın neden öyle olduğu ne iş yaptığıda anlatılıyor,vereceğiniz paraya değer.

http://www.4shared.com/file/35598279/203d8b11/ccs_c_rnekler.html

Bu da genel C anlatan bir kitap.

http://www.4shared.com/file/35598770/5f2af15e/Cfedon.html


Bu mesaja 1 cevap geldi.
L
18 yıl
Binbaşı

Tamam hayırsever forum adamı liu kang bu görevi kabul etmekten onur duyar


Bu mesaja 1 cevap geldi.
M
18 yıl
Binbaşı

Teşekkür ederim.

@Respected hocamında bir çalışması vardı unutmuşum.

http://www.4shared.com/file/35601238/c5da21d6/ccs_books.html



R
18 yıl
Yarbay

Liu Kang
ama sen yine sıfırlandıktan sonra ne yapılabilir onu anlattın. benim derdim C tarafında derdimi anlatyamadım. asm ile uğraşmadan C tarafında ne yaparımda kesme den çıkarken bayrağı temizlemez. gerçi ben sorumun cevabını aldım CCS C de böyle bir seçenek yok.

musallim
güzel kaynaklar. birkaç tanesini siteme upload etsem kızarmısınız???


Bu mesaja 1 cevap geldi.
L
18 yıl
Binbaşı

Üzgünüm böyle yama tarzı bir işlemden başka bir seçeneğin yok CCS için. İyi tamam da ne için gerekiyor böyle yapmak?


Bu mesaja 1 cevap geldi.
R
18 yıl
Yarbay

herşey
"PIC C gibi derleyicilerde return ile kesme den çıkıldığında, INTF bayrağını siliyormu acaba, deneyen varmı" sorusuyla başladı.
bir yerde kullanmayacam sadece öğrenmek istedim. kesme programından çıkarken kullanılan return komutunu hep bir sonraki kesme için gerekli işlemler yapılsın şeklide hayal etmişimdir. soruda bundan kaynaklandı...


Bu mesaja 1 cevap geldi.