16f877a yavaş çalışıyor

Başlatan Atima, 23 Ekim 2021, 20:32:41

Atima

Merhabalar, Renk okuma sistemi yapıyorum. renk sensörüyle arduniodan renkleri okuyorum düzgünce ve hızlıca, ordan pice aktarip lcd ekranda görmem gerekiyor. renk kırmızı ise ardunionun 8 nolu pini 1 oluyor Ve 8 nolu pinini pic'in c4 üne bağlıyorum. c4 ü input olarak ayarlıyorum koddaki gibi fakat, cismi gösterince ardunio hızlı okuyor ama pic 2-3 saniye sonra tepki veriyor.  neden olabilir ?

#include <16F877A.h>
#fuses XT 
#use delay(clock=4000000) 

#include <lcd.c>
#define kirmizi input(PIN_C4)
#define mavi input(PIN_C5)
#define yesil input(PIN_C6)
void main()
{
   lcd_init();
   
   while(TRUE)
   {
      if(kirmizi==1 && mavi==0 && yesil == 0 )
      {
         printf(lcd_putc,"\fkirmizi  cisim ");
         delay_ms(100);
         output_high(pin_b7);
         output_low(pin_b6);
         output_low(pin_b5);
        
      }  
      else if (mavi==1  && kirmizi==0 && yesil == 0)
      {
         printf(lcd_putc,"\fmavi  cisim ");
         delay_ms(100);
         output_high(pin_b6);
         output_low(pin_b5);
         output_low(pin_b7);
      }
      else if ( yesil == 1 && kirmizi==0 && mavi==0)
      {
         printf(lcd_putc,"\fyesil  cisim ");
         delay_ms(100);
         output_high(pin_b5);
         output_low(pin_b6);
         output_low(pin_b7);
      }
   }
   

}

serkan

Kardeşim 4 mhz kristal yerine 20 mhz kullanınız.Delay_ms sürelerini düşürerek denemekte olabilir.

Atima

Daha önceden 4mhz ile çalışıyordu, AYrıca elimde 20mhz yok ve 4mhz yi lehimledim..

yas

Yeşil ve mavi isimli girişlerin durumu da önemli. Boşta iseler sorun oluşturabilir.

Atima

Soruna şöyle bir güncelleme geldi. Pic'e elimle dokununca düzgün çalışıyor. ne kadar garip..
Neden olabilir. ?

yas

Brown-out Reset (BOR) açıksa kapalı yapın.

Atima


sadogan

#fuses XT
#use delay(clock=4000000)
bu 2 satırın
yerine bunu yazarmısın.
#use delay(crystal=4MHz)

yas

MCLR, RC5 ve RC6 pinlerinin boşta kalmadığından ve temassızlık problemi olmadığına eminseniz, LVP yi de kapatıp bir deneyin. Çok evvelden böyle bir sorun yaşamıştım. Yani el ile mcu nun ortasına dokununca yada dokunacak kadar çok yaklaşınca çalışmaya başlıyordu. BOR yada LVP'yi kapatınca düzeliyordu,tam hatırlamıyorum neredeyse 15 yıl olmuştur. Silikon chipin üretim hatasıydı sadece bir revizyonda denk gelmişti. Ayrıca osilatör konfigürasyonunda XT rezenatör için, eğer rezenatör değil kristal kullanıyorsanız HS olarak değiştirin.

Atima

Kristal kullaniyorum 4mhz lik xt yazmaman gerektigini soyluyorsunuz, deneyecegim. Hs ise 10mhz ustune yaziliyor diye biliyordum ama yanlisim varsa duzeltin..

ete

Bildiğim kadarı ile XT 6 Mhz ve altı çalışma frekansları için geçerli bir parametre. Kristal rezonatör farketmiyor. Sonuçta rezonatör de kondansatörleri üzerinde olan bir kristal değilmidir.?
4mHz çalışma için XT seçilmesi gerekir. HS parametresi yanlızca 6Mhz ve üzeri frekanslar için seçilmelidir.

El teması veya yakınlaştırılması ile işlemcinin çalışmasının değişmesi problemi tamamen besleme kaynaklıdır. Besleme voltajınız çok düzgün ve tam DC olan bir 9-12V kaynakdan 7805 veya muadili bir regülatörle elde edilmelidir. İşlemci bacaklarına mümkün olan en yakın konuma mutlaka 100nF kondansatör bağlanmalıdır. 5V çıkışında 100nf olması halinde bile işlemci bacaklarına (hatta tam bacaklara) mutlaka 100nf koyulmalıdır. Pek çok kişi yanlızca 5V un varlığına bakıyor. Ama oraya bir skop ile bakarsanız besleme voltajının çok dalgalandığını parazit içerdiğini görebilirsiniz.
Bu gibi durumlarda mutlaka temiz kaynakdan elde edilmiş bir başka 5V ile devrenizi çalıştırıp deneyiniz.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Atima

Alıntı yapılan: ete - 24 Ekim 2021, 11:28:43Bildiğim kadarı ile XT 6 Mhz ve altı çalışma frekansları için geçerli bir parametre. Kristal rezonatör farketmiyor. Sonuçta rezonatör de kondansatörleri üzerinde olan bir kristal değilmidir.?
4mHz çalışma için XT seçilmesi gerekir. HS parametresi yanlızca 6Mhz ve üzeri frekanslar için seçilmelidir.

El teması veya yakınlaştırılması ile işlemcinin çalışmasının değişmesi problemi tamamen besleme kaynaklıdır. Besleme voltajınız çok düzgün ve tam DC olan bir 9-12V kaynakdan 7805 veya muadili bir regülatörle elde edilmelidir. İşlemci bacaklarına mümkün olan en yakın konuma mutlaka 100nF kondansatör bağlanmalıdır. 5V çıkışında 100nf olması halinde bile işlemci bacaklarına (hatta tam bacaklara) mutlaka 100nf koyulmalıdır. Pek çok kişi yanlızca 5V un varlığına bakıyor. Ama oraya bir skop ile bakarsanız besleme voltajının çok dalgalandığını parazit içerdiğini görebilirsiniz.
Bu gibi durumlarda mutlaka temiz kaynakdan elde edilmiş bir başka 5V ile devrenizi çalıştırıp deneyiniz.

Ete
Oncelikle tesekkurler. Baski devremden 16f 877a nin iki beslemesi va.lehimle birlestirip 100nf kondansator koydum. Beslemeyi ardunionun 5v dan aliyordum. 7805 ceviricimde var onu kullanmayi denerim.

Atima

Malesef degisen bir sey olmadi. Voltaji duzgun 5v verdim (7805 ayarlanabilir voltaj regulatoru ile), 100nf koydum, lvp ve bor u kapattim, tum topraklari birlestirdim fakat yine elim yaklasinca duzgun calisiyor. Pic bozulmus olabilir mi ?

Atima




Daha cok sekildeki kristale elimi yaklastirdigim da calisiyor..

mehmet

#14


GND 'ler düzgün bağlı mı?
Kristal kondansatörlerini yeniden
kontrol edin. (15pF)
MCLR bacağındaki direnç 1K daha
iyi olur.
Bir de kristal uçlarına 1M direnç
bağlayın.