Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: Atima - 23 Ekim 2021, 20:32:41

Başlık: 16f877a yavaş çalışıyor
Gönderen: Atima - 23 Ekim 2021, 20:32:41
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);
      }
   }
   

}
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: serkan - 23 Ekim 2021, 20:43:16
Kardeşim 4 mhz kristal yerine 20 mhz kullanınız.Delay_ms sürelerini düşürerek denemekte olabilir.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 23 Ekim 2021, 20:51:58
Daha önceden 4mhz ile çalışıyordu, AYrıca elimde 20mhz yok ve 4mhz yi lehimledim..
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: yas - 23 Ekim 2021, 21:18:32
Yeşil ve mavi isimli girişlerin durumu da önemli. Boşta iseler sorun oluşturabilir.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 23 Ekim 2021, 21:51:18
Soruna şöyle bir güncelleme geldi. Pic'e elimle dokununca düzgün çalışıyor. ne kadar garip..
Neden olabilir. ?
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: yas - 23 Ekim 2021, 22:24:48
Brown-out Reset (BOR) açıksa kapalı yapın.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 23 Ekim 2021, 22:38:17
kapalı ama olmuyor
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: sadogan - 23 Ekim 2021, 23:08:20
#fuses XT
#use delay(clock=4000000)
bu 2 satırın
yerine bunu yazarmısın.
#use delay(crystal=4MHz)
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: yas - 23 Ekim 2021, 23:16:03
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.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 24 Ekim 2021, 11:16:03
Kristal kullaniyorum 4mhz lik xt yazmaman gerektigini soyluyorsunuz, deneyecegim. Hs ise 10mhz ustune yaziliyor diye biliyordum ama yanlisim varsa duzeltin..
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: ete - 24 Ekim 2021, 11:28:43
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
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 24 Ekim 2021, 12:03:55
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.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 24 Ekim 2021, 12:53:39
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 ?
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 24 Ekim 2021, 13:43:10

(https://ibb.co/gS3JSDN)

Daha cok sekildeki kristale elimi yaklastirdigim da calisiyor..
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: mehmet - 24 Ekim 2021, 14:54:52
(https://ibb.co/D4XJtBJ)

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.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 24 Ekim 2021, 16:05:07
Isin bir diger kismida normal led yakma sondurme kodu duzgun calisiyor.. boyle olunca kristalde toplaklama da mclr direncinde sorun olmadigini dusunuyor insan..
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: yas - 24 Ekim 2021, 19:33:09
Alıntı yapılan: Atima - 24 Ekim 2021, 11:16:03Kristal kullaniyorum 4mhz lik xt yazmaman gerektigini soyluyorsunuz, deneyecegim. Hs ise 10mhz ustune yaziliyor diye biliyordum ama yanlisim varsa duzeltin.

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.

@ete hocam çalışmasında sorun yaratmıyor gibi görünebilir tam olarak değil, konfigürasyonda rc,lp,xt,hs seçimi bildiğiniz üzer osc pinlerini donanımsal olarak değiştiriyor. Kristal (kuvars) osilatörü ile rezenatör (seramik) osilatörü sonuçta aynı işi yapıyor görünseler de karalı çalışma için farklı çalışma genliklerine ihtiyaç duyarlar. Aynı frekansta çalışan mcu için xt ve hs seçim denemeleri yapıldığında skop yada voltmetre ile ölçümler karşılaştırıldığında fark olduğu görülür. Bu genlik farkının sebebi mcu nun osc konfigürasyonu sebebiyle donanım pinlerindeki değişikliktir. Rezenatör(seramik) osc ile kristal (kuvars) osc arasındaki tek farkın gnd ye bağlanan kondansatörlerin genelde rezenatörde içinde olduğu sanırlır (iki bacaklı olanlarda yoktur) ama asıl önemli olan fark kristal (kuvars) osc rezenatöre göre çok daha keskin ve ısı değişimi ile frekans kayması çok daha azdır.

@Atima sorunun hala bulunamamasına ilginç diye düşünüyordum, ama gönderdiğin resmi görünce donanımsal olması ihtimali çok yüksek diye düşünüyorum, temassızlık yada RC5 ve RC6 pinlerini mcu tarafından gnd ye çekerek denermisin. @ete hocanın besleme ile ilgili söylediklerini de es geçme. Eğer devreleri bilgisayarın usb üzerinden besliyorsan bilgisayardan tamamen ayırarak deneme yap belki bilgisayarından gürültü alıyor olabilir. Sonuç olumsuz olursa PCB nin alttan çekilmiş bir resmini de yükleyebilir misin.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: tekosis - 25 Ekim 2021, 01:22:02
Kristale bağlı kondansatörleri yerinden söküp alttan kristalin bacaklarına doğrudan lehimlemen iyi olur. Pcb tasarımı baya sıkıntılı görünüyor. Kristalin gövdesini bir tel ile devrenin gnd hattına bağlayabilirsin. kristale gelen hatlar ne durumda?
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: elmaalma - 25 Ekim 2021, 03:39:23
Mikrodenetleyicinin 11+32 (Vdd) bacaklarını ve 12+31 (Vss) bir birine bağlamadıysan bağla ve de en kısa noktadan 100 nF + 100uF koy. Devrende kristale bağlı olan dışında (varsa dahi)kapasitör göremedim.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 25 Ekim 2021, 06:31:11

(https://ibb.co/Mf7N6DX)

Resimdeki isaretli yere 100nf koydum, 11 32 ve 12 31 uclari birbirine baglidir. Devrede kisa devre yok. Ayrica tum pinlerden 2saniye led yakma sondurme duzgun caisiyor.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 25 Ekim 2021, 18:43:09
?
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: tekosis - 25 Ekim 2021, 19:30:36

(https://ibb.co/9vpzGXx)
Kırmızı okla gösterdiğim kısımda osilatör kısmında bir bakir hat kısa devre yapıyor gibi. Burayı düzeltmeniz lazım.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 25 Ekim 2021, 19:43:07
Alıntı yapılan: tekosis - 25 Ekim 2021, 19:30:36 (https://ibb.co/9vpzGXx)
Kırmızı okla gösterdiğim kısımda osilatör kısmında bir bakir hat kısa devre yapıyor gibi. Burayı düzeltmeniz lazım.

Multimetre ile olctum tek tek kisa devre olmamasi lazim
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: tekosis - 25 Ekim 2021, 20:06:52
O arayı temizlers3n iyi olur.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 25 Ekim 2021, 20:45:37
Alıntı yapılan: tekosis - 25 Ekim 2021, 20:06:52O arayı temizlers3n iyi olur.


(https://ibb.co/v468zRL)

(https://ibb.co/1Q522jq)
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 25 Ekim 2021, 20:47:42
#include <16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#define mavi input(pin_c4)
#define yesil input(pin_c5)
#define kirmizi input(pin_c3)
#define tanimsiz input(pin_c2)
#include <lcd.c>
void main()
{
   lcd_init();
   while(TRUE)
   {
      if(mavi==1 && yesil==0 && kirmizi==0 && tanimsiz==0)
      {
         output_high(pin_b0);
         output_low(pin_b1);
         output_low(pin_b2);
         printf(lcd_putc,"\fmavi renk !!"); delay_ms(100);
      }
      else if(yesil==1 && mavi==0  &&kirmizi==0 && tanimsiz==0)
      {
         output_high(pin_b1);
         output_low(pin_b0);
         output_low(pin_b2);
         printf(lcd_putc,"\fyesil renk !!"); delay_ms(100);
      }
      else if(kirmizi==1 && yesil==0 && mavi==0 && tanimsiz==0)
      {
         output_high(pin_b2);
         output_low(pin_b1);
         output_low(pin_b0);
         printf(lcd_putc,"\fkirmizi renk !!"); delay_ms(100);
      }
      else if(kirmizi==0 && yesil==0 && mavi==0 && tanimsiz==1)
      {
         output_high(pin_b3);
         output_low(pin_b1);
         output_low(pin_b2);
         output_low(pin_b0);
         printf(lcd_putc,"\ftanimsiz renk !!"); delay_ms(100);
      }


     
   }

}

kodu düzenledim tekrar, simülasyonda çalışıyor. Gerçekte pcb bozuktur dedim breadboarda kurdum olmadı. kapasitör yerleştirdim olmadı. bor ile lvp kapattım olmadı. Uzaktan elim hafif yaklaşınca hala çalışıyor ama öbür türlü tepki vermiyor..
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: fide - 25 Ekim 2021, 21:15:29
Mclr direnci yerinde mi?
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 25 Ekim 2021, 21:21:05
Alıntı yapılan: fide - 25 Ekim 2021, 21:15:29Mclr direnci yerinde mi?
evet 10k
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: aliveli - 26 Ekim 2021, 00:18:56
lcd_init(); den önce delay_ms(100); kullanarak deneyin
çok lazım değilse ışığını kapatın
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 26 Ekim 2021, 07:46:29
Alıntı yapılan: aliveli - 26 Ekim 2021, 00:18:56lcd_init(); den önce delay_ms(100); kullanarak deneyin
çok lazım değilse ışığını kapatın
Deneyecegim baska tavsiyesi olan var midir ?
https://www.microchip.com/forums/m/tm.aspx?m=628745&p=1
Bu linkte bazi seyler diyor ne dusunuyorsunuz ?
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: z - 26 Ekim 2021, 08:22:10
Avometre ile bacaklari tek tek kontrol et. Yollarda kilcal kopukluk vardir.

Reset bacagindaki voltaji bir olc. 5v mu degilmi?

Xtal uclarina 1M bagla.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 26 Ekim 2021, 09:04:30
Alıntı yapılan: z - 26 Ekim 2021, 08:22:10Avometre ile bacaklari tek tek kontrol et. Yollarda kilcal kopukluk vardir.

Reset bacagindaki voltaji bir olc. 5v mu degilmi?

Xtal uclarina 1M bagla.
1M den kastınız nedir bağlantı nasıl olucak ?
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: z - 26 Ekim 2021, 09:32:48
Xtal uclarina 1 Mega Ohm degerinde bir direnci paralel bagla.
Bu tur ev yapimi PCBlerde kilcal yollarda kopuklar olabiliyor ve gozle anlasilmiyor. O yuzden reset ve xtal yollarini elemanlardan entegre pinine kadar avo ile tek tek test et. Cipin dogrudan pininden test et cunku sokette de temassizlik olabilir.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 26 Ekim 2021, 09:52:28
Alıntı yapılan: z - 26 Ekim 2021, 09:32:48Xtal uclarina 1 Mega Ohm degerinde bir direnci paralel bagla.
Bu tur ev yapimi PCBlerde kilcal yollarda kopuklar olabiliyor ve gozle anlasilmiyor. O yuzden reset ve xtal yollarini elemanlardan entegre pinine kadar avo ile tek tek test et. Cipin dogrudan pininden test et cunku sokette de temassizlik olabilir.


Dogru diyorsunuz fakat basit bir led yak 2sny bekle led sondur programi tum pinlerde duzgun calisip, bir pinin inputu 1 olunca baska pinde cikis yapmak calismiyor. Elim yaklasinca calisiyor.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: fide - 26 Ekim 2021, 10:39:45
Alıntı yapılan: Atima - 26 Ekim 2021, 09:52:28Dogru diyorsunuz fakat basit bir led yak 2sny bekle led sondur programi tum pinlerde duzgun calisip, bir pinin inputu 1 olunca baska pinde cikis yapmak calismiyor. Elim yaklasinca calisiyor.
@z nin de demek istediği bu zaten. Temel bilşenlerin olan çip - kristal ve reset direncinin birinde temassızlık var. Etraftaki gürültüden tetik alıp çalışıyor.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 26 Ekim 2021, 10:52:28
Alıntı yapılan: fide - 26 Ekim 2021, 10:39:45@z nin de demek istediği bu zaten. Temel bilşenlerin olan çip - kristal ve reset direncinin birinde temassızlık var. Etraftaki gürültüden tetik alıp çalışıyor.
tek tek kontrol edip haber vereceğim.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 26 Ekim 2021, 19:37:29
şuan bir şey keşfettim, ben renk verilerini arduniodan alıyorum yani atıyorum kırmızı renk ise ardunionun 8nolu pini high oluyor, 8nolu pin direkt 16f877a ya bağlıyorum, ordan input alıp kırmızı renk diye yazdırıyorum. fakat 16f877a da değilde ardunioya yaklaştırınca düzgün çalıştığını farkettim. yani sorun ardunioda sanırım. neden olabilir ?
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: mg1980 - 26 Ekim 2021, 20:18:57
Bu sadece Arduino ile olmuyor mu.. neden bir de pic kullanıyorsunuz..
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: serkan - 26 Ekim 2021, 20:34:56
Beslemedeki - hatlar ortak ve kısa olacak .
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: adogsm - 26 Ekim 2021, 23:40:00
Picde kullandığın kristalin gövdesine gnd ye çek bir tel ile gnd lehimle bakalım düzelecek mi.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: mehmet - 27 Ekim 2021, 00:12:52
Alıntı yapılan: Atima - 26 Ekim 2021, 19:37:29şuan bir şey keşfettim, ben renk verilerini arduniodan alıyorum yani atıyorum kırmızı renk ise ardunionun 8nolu pini high oluyor, 8nolu pin direkt 16f877a ya bağlıyorum, ordan input alıp kırmızı renk diye yazdırıyorum. fakat 16f877a da değilde ardunioya yaklaştırınca düzgün çalıştığını farkettim. yani sorun ardunioda sanırım. neden olabilir ?
G N D
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 27 Ekim 2021, 09:08:49
sorun düzeldi çok teşekkür ederim herkese ilgisinden dolayı, tüm gnd pinlerini değiştirip tekrar taktım ve kodlama düzeltmeleri ile düzeldi.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: teknikogrenci - 27 Ekim 2021, 15:47:58
Alıntı yapılan: Atima - 27 Ekim 2021, 09:08:49sorun düzeldi çok teşekkür ederim herkese ilgisinden dolayı, tüm gnd pinlerini değiştirip tekrar taktım ve kodlama düzeltmeleri ile düzeldi.


Hocam sorununuz düzeldiği için sevindik fakat bir sürü ihtimal değerlendirilmiş.
Gnd hattı dolayısıyla mı düzeldi kodlama düzeltmeleri ile mi düzeldi veya her ikiside mi ?

Tam yazarsanız aynı sorun başka birinde de görüldüğünde yardımcı olur.
Başlık: Ynt: 16f877a yavaş çalışıyor
Gönderen: Atima - 27 Ekim 2021, 20:31:09
Öncelikle fuses ayarlarını tam yapıp, renk sensörünün gnd desi direk arduniodandı, tüm gndleri bir breadboardda düzeltip, pic beslemesine kapasitörleri koyup 7805 5v ile beslendi. Kodlamada inputların yazımı düzenlendi ve sorun çözüldü.