Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: XX_CİHAN_XX - 14 Kasım 2005, 20:04:08

Başlık: PICC DE PORT CHANGE INTERRUPT UYGULAMASI????
Gönderen: XX_CİHAN_XX - 14 Kasım 2005, 20:04:08
Degerli arkadaşlar benim bu konuda yardıma ihtiyacım olucak.Ben  pıcc de port change uygulamasıyla ilgili sorun yaşıyorum.Ana programda kullandıgım bir değiskeni her interrupt geldiğinde artırmak istiyorum fakat derleyici hata veriyor.Daha dogrusu yapmaya çalıştıgım uygulama tam olarak su;
portb normalde clear konumda. portb,7 set olunca ınterrupt geldıyse ana programda kullandıgım verı degıskenıne 1 yuklemem gerek.Portb,6 set olunca ınterrupt geldı ıse verı regısterıne 2 yuklemem gerek.(ıkısının aynı anda 1 olama durumu yok)Bu tarz bır uygulama yapmam gerek yardımcı olursanız cok sevınırım.Şimdiden teşekkürler.Saygılarımla,
Başlık: PICC DE PORT CHANGE INTERRUPT UYGULAMASI????
Gönderen: XX_CİHAN_XX - 16 Kasım 2005, 00:36:54
Arkadaşlar yardım edersenız çok sevınecem.Sadece şunu öğrenmek istiyorum;


//INTERRUPT DENEMESI ICIN YAZILMIS BIR PROGRAM
#include <16F877.h>
#int_RB
void RB_ISR()
{
  cihan=1;             //BUNU YAZINCA HATA VERIYOR
 
  bit_clear(INTCON,0);  //RBIF=0
}

void main()
{
  unsigned int cihan;
  TRISB=0xFF;
 
  enable_interrupts(RB_CHANGE);
  enable_interrupts(GLOBAL);
  for(;;)
  {
  cihan=0;
  }
}

Programdanda anlaşıldıgı gıbı ana programda cihan isminde bir degişken acıyorum.İnterrupt gelıncede bu degıskene 1 yukluyorum.Ama derledıgımde hata verıyor.İnterrupt alt programındakı cihan=1; satırını kaldırdıgımda ıse derleyınce hata olusmuyor bunun sebebını ve dogrusunu anlatırsanız çok sevınıcem.Şimdiden Teşekkürler.

mod notu: lütfen code tagını kullanalım.
Başlık: PICC DE PORT CHANGE INTERRUPT UYGULAMASI????
Gönderen: Erol YILMAZ - 16 Kasım 2005, 00:47:42
cihan degiskenini bir cok farkli fonksiyon altinda kullanmak istiyorsan cihan degiskenini GLOBAL olarak tanimlayabilirsin. Yani unsigned int cihan; olan kismi,  main  fonksiyonundan alip #include <16F877.h>
yazan yerin bir alt satirina tasimak.
Başlık: slm
Gönderen: HEXF2 - 16 Kasım 2005, 11:03:55
Evet hata bu cihan değişkeni global olarak tanımlanmamış yani yerel değişken bunu tüm fonksiyonlarda kullanmak istiyorsan  GLOBAL olarak deklare etmen gerek
Başlık: PICC DE PORT CHANGE INTERRUPT UYGULAMASI????
Gönderen: XX_CİHAN_XX - 16 Kasım 2005, 15:22:00
Dediğiniz gibi yaptım oldu çok teşekkür ediyorum.Birde pıcc ye yeni basladımda kusra bakmayın pek iyi bilmiyorum henüz pıc c yı.O yuzden bısı daha sorucam.Pekı yukarda yazdıgım ınterrupt uygulaması dogru mu çalısır mı yanı.Onu sorucam bırde
#int_RB
void RB_ISR()
komutunda ordakı ISR nin anlamı ne onu sorucaktım.İlginizden dolayı teşekkürler.Saygılarımla,
Başlık: PICC DE PORT CHANGE INTERRUPT UYGULAMASI????
Gönderen: Petek - 16 Kasım 2005, 16:08:02
Alıntı yapılan: "XX_CİHAN_XX"Dediğiniz gibi yaptım oldu çok teşekkür ediyorum.Birde pıcc ye yeni basladımda kusra bakmayın pek iyi bilmiyorum henüz pıc c yı.O yuzden bısı daha sorucam.Pekı yukarda yazdıgım ınterrupt uygulaması dogru mu çalısır mı yanı.Onu sorucam bırde
#int_RB
void RB_ISR()
komutunda ordakı ISR nin anlamı ne onu sorucaktım.İlginizden dolayı teşekkürler.Saygılarımla,

ISR: interupt service routine demek. Yani interrupt oluşunca o adrese git demek. Anladığım kadarıyla CCS kullanıyorsun. CCS de klasik assemblerdaki mantığı interrupt için düşünme. İstediğin interrupt için ayrı alt program yazabilirsin. Derleyici kendisi onları tek bir rutin haline getiriyor. İnterrupta göre ilgili kod bölümüne etlama yapıyor. Alt program adı içerisinde ISR yazmak gibi bir zorunluluğunda yok. Zira bir öncesinde #int_RB tanımlamışsın. "void bosver()" de aynı işi görür.

Yazdığın program çalışır fakat sen algılayamazsın. Döngü içerisinde hemen eski haline geliyor. Proteus isis kullan, cof dosyasını işlemciye tanıt. adım adım çalıştır ve register değerlerine bak. bit tanımlı değişkenin değerini göremeyebilirsin. Onun yerine cihanı byte tanımla ve öyle bak.
Başlık: PICC DE PORT CHANGE INTERRUPT UYGULAMASI????
Gönderen: XX_CİHAN_XX - 16 Kasım 2005, 16:34:20
Verdiğiniz bilgiler için teşekkürler.
Başlık: PICC DE PORT CHANGE INTERRUPT UYGULAMASI????
Gönderen: Erol YILMAZ - 16 Kasım 2005, 20:50:42
Alıntı yapılan: "XX_CİHAN_XX"Dediğiniz gibi yaptım oldu çok teşekkür ediyorum.Birde pıcc ye yeni basladımda kusra bakmayın pek iyi bilmiyorum henüz pıc c yı.

Cihan PICC den once C yi ogrenmeni tavsiye ederim.
Basit problemlerle ugrasmazsin o zaman.