Mesaj Önizleme  Konuyu Gönder 
kesme
Yazar Mesaj
iruraz
Member
***


Mesajlar: 17
Grup: Registered
Katılım: Jul 2009
Statü: Çevrimdışı
Karma Puanı: 0
Mesaj: #1
kesme

Merhaba,
lcd'ye bir şeyler yazdırırken (pic 16f8777 ile) rb0 pininden ve rb4 pininden iki tane kesme kullandım. Proteus'ta sağlıklı bir şekilde çalışıyor, derleyicide altta görülen uyarıları veriyor. Ne demek istediğini anlayamadım. Yardımcı olursanız sevinirim.
proteus uygulamasına bakmak isterseniz :
http://rapidshare.com/files/263371686/kesme.rar

Alıntı:
interrupts disabled during call to prevent re-entrancy: (lcd_init)
interrupts disabled during call to prevent re-entrancy: (lcd_putc)
interrupts disabled during call to prevent re-entrancy: (@delay_ms1)

Kod:
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay(clock=4000000)

#use fast_io(b)


#include <lcd.c>

#int_ext

void kesme()
{
   lcd_init();
  
   printf(lcd_putc,"kesme");
   printf(lcd_putc,"\n.............");
   delay_ms(1000);
}

#int_rb
void bportu()
{
   if(input(pin_b4))
   {
      lcd_init();
  
      printf(lcd_putc,"kesme");
      printf(lcd_putc,"\n b portu");
  
      delay_ms(1000);
   }
}

void main()
{
   setup_psp(PSP_DISABLED);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_CCP1(CCP_OFF);
   setup_CCP2(CCP_OFF);
  
   set_tris_d(0x00);
   set_tris_b(0xff);
  
   ext_int_edge(h_to_l);
  
   enable_interrupts(int_ext);
   enable_interrupts(int_rb);
   enable_interrupts(global);
  
   lcd_init();
  
   while(1)
   {
      printf(lcd_putc,"\f dongu");
      delay_ms(500);
      printf(lcd_putc,"\n devam");
      delay_ms(500);
      printf(lcd_putc,"\f ediyor");
      delay_ms(500);
      
   }
}

08-04-2009 06:50 AM
Bu kullanıcının gönderdiği mesajları bul Bu mesajı bir cevapta alıntı yap
admin
Administrator
*******


Mesajlar: 29
Grup: Administrators
Katılım: Apr 2008
Statü: Çevrimdışı
Karma Puanı: 0
Mesaj: #2
RE: kesme

kesme fonksiyonları içerisinde delya_ms(); fonksiyonları kullanılmaz

08-04-2009 10:49 PM
Bu kullanıcının gönderdiği mesajları bul Bu mesajı bir cevapta alıntı yap
iruraz
Member
***


Mesajlar: 17
Grup: Registered
Katılım: Jul 2009
Statü: Çevrimdışı
Karma Puanı: 0
Mesaj: #3
RE: kesme

o zaman kesme fonksiyonunun uygulama süresini belirleyen nedir? (yani lcd'de çıkan "kesme" yazısının ekranda kalma süresini belirleyen.)

08-06-2009 09:16 PM
Bu kullanıcının gönderdiği mesajları bul Bu mesajı bir cevapta alıntı yap
admin
Administrator
*******


Mesajlar: 29
Grup: Administrators
Katılım: Apr 2008
Statü: Çevrimdışı
Karma Puanı: 0
Mesaj: #4
RE: kesme

printf fonksiyonları gibi uzun zaman harcayan fonksiyonlar kesmede kullanılmaz. Kesme rutini içinde işlemini hemen bitirip çıkman gerekir

08-07-2009 05:33 AM
Bu kullanıcının gönderdiği mesajları bul Bu mesajı bir cevapta alıntı yap
iruraz
Member
***


Mesajlar: 17
Grup: Registered
Katılım: Jul 2009
Statü: Çevrimdışı
Karma Puanı: 0
Mesaj: #5
RE: kesme

Anladım... Çok teşekkür ederim.

08-07-2009 06:16 AM
Bu kullanıcının gönderdiği mesajları bul Bu mesajı bir cevapta alıntı yap
ineversmoke
Member
***


Mesajlar: 1
Grup: Registered
Katılım: Dec 2009
Statü: Çevrimdışı
Karma Puanı: 0
Mesaj: #6
RE: kesme

Merhaba.

Bende bu konuda bilgi almak istiyorum, ccs c'de henüz yeniyim.

Bir encoder'dan gelecek palsleri sürekli saymam gerekiyor, bunun için rb0 harici kesmesini kullanmayı düşündüm, yani encoderin pulse üreten bacağını bu pine, yön bilgisini alabileceğin bacağını başka mesela rb1 pinine bağlayıp kesme yordamında değişkeni artırmak yada eksiltmeyi düşünüyorum.

Tercih ettiğim yöntem sağlıklı mı sizce?

Bu ilk aşamayı geçtikten sonra değişkeni seri porttan bilgisayara gönderip bilgisayardan girilen değere göre de pwm sinyali üretmem gerekiyor.

Böyle bir projede encoder pulselerini saymak için bu harici kesmeyi kullanmak sizce nasıl bir fikir?

Kullanacağım pic f628a olacak.
Cevaplar için şimdiden teşekkürler.

En son düzenleme: 12-15-2009 01:14 AM ineversmoke.

12-15-2009 01:12 AM
Bu kullanıcının gönderdiği mesajları bul Bu mesajı bir cevapta alıntı yap
Mesaj Önizleme  Konuyu Gönder 

Yazdırılabilir Bir Versiyona Bak
Bu Konuyu Bir Arkadaşına Gönder
Bu Konuya Abone Ol | Konuyu Favorilerine Ekle

Foruma Git: