Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: A0px - 17 Eylül 2016, 19:35:37

Başlık: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: A0px - 17 Eylül 2016, 19:35:37
Merhaba arkadaslar;

   Benim projemde sole bı sıkıntım var arkadaslar
Ben atıyorum rb0 a 20 kere sınyal geldıgınde yada sayıcı gıbı bısı 20 kez saydıgında ra0 dan cıkıs vermesını ıstıyorum.Bana basit bir şekilde sadece 20 sinyalde 1 cıkıs verebılcek kodları yazabılırmsnz.


Sagolun yardımlarınızı bekliyorum.
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: muhittin_kaplan - 17 Eylül 2016, 22:13:17
Hoşgeldiniz..
[Lütfen Türkçemize Daha İyi Davranalım..]
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: canbulut - 17 Eylül 2016, 22:33:43
Alıntı yapılan: A0px - 17 Eylül 2016, 19:35:37
Merhaba arkadaslar;

   Benim projemde sole bı sıkıntım var arkadaslar
Ben atıyorum rb0 a 20 kere sınyal geldıgınde yada sayıcı gıbı bısı 20 kez saydıgında ra0 dan cıkıs vermesını ıstıyorum.Bana basit bir şekilde sadece 20 sinyalde 1 cıkıs verebılcek kodları yazabılırmsnz.


Sagolun yardımlarınızı bekliyorum.
yazabiliriz siz şemasını çıkarabilirmisiniz?
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: mufitsozen - 17 Eylül 2016, 22:34:25
Alıntı yapılan: muhittin_kaplan - 17 Eylül 2016, 22:13:17
Hoşgeldiniz..
[Lütfen Türkçemize Daha İyi Davranalım..]

yeni mezun bir mühendis yaptigi is basvurusuna olumlu yanit alir, sirket görüsmeye çagirir. Konusmanin sonlarina dogru yönetici adama sorar:
- Peki, senin sirketten beklentilerin neler?
- Öncelikli olarak bir araba isterim. Ayrica su anda bulundugum dairenin kirasi biraz fazla. Onu da sirketin karsilamasi iyi olur. Maas olarak da 5,000 Dolar yeterli.
Sirket yöneticisi gayet ciddi dinler, sonra:
- Biz sana son model bir Mercedes ve Tarabya'da bir villa verecegiz. Ayrica bizim bu pozisyon için planladigimiz maas 6000 dolardi, der. Elemanimizin gözleri disari firlar:
- Saka yapiyorsunuz, der. Sirket yöneticisi gayet sakin cevap vermiş:
- Önce siz baslattiniz.
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: EFESU - 17 Eylül 2016, 22:36:39
Bazen ne yazacagini bilemiyor insan !
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: A0px - 17 Eylül 2016, 23:06:52
Evet semayı cıkarabilirim ilk etapda en basitinden yazsaniz bile bana fikir olucağından onu geliştirebilirim.Tabiki vaktiniz uygunsa proteus için malzemeleri ve ufak bi açıklamada yapabilirsinz çok sagolun arkadaşlar
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: Salih - 18 Eylül 2016, 11:47:29

#include <16F877.h>
#Fuses   XT,NOWDT
#use delay(clock=4000000)// 4 MHz osilatör kullanılacak
int16 say;

Void Main()
{     
      while(True)
      {
         if (input(Pin_B0) say++;
         if (say==20) output_high(Pin_C0);
         while(input(Pin_B0));
      }
}
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: A0px - 18 Eylül 2016, 12:28:08
Salih cok tesekkur ederım  anladıgım kadarıyla b0 a bı buton koysam c0da bı led koysam ve butona 20 kere bassam ledın yanması gerekıcek degılmı
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: Salih - 18 Eylül 2016, 13:38:47
Alıntı yapılan: A0px - 18 Eylül 2016, 12:28:08
Salih cok tesekkur ederım  anladıgım kadarıyla b0 a bı buton koysam c0da bı led koysam ve butona 20 kere bassam ledın yanması gerekıcek degılmı

Evet. Aynı zamanda, RB0 girişi pull-down olarak ayarlandığı kabul edilmiştir.
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: A0px - 18 Eylül 2016, 16:26:54
Alıntı yapılan: Salih - 18 Eylül 2016, 11:47:29

#include <16F877.h>
#Fuses   XT,NOWDT
#use delay(clock=4000000)// 4 MHz osilatör kullanılacak
int16 say;

Void Main()
{     
      while(True)
      {
         if (input(Pin_B0) say++;
         if (say==20) output_high(Pin_C0);
         while(input(Pin_B0));
      }
}




   Salih Derleyici;
                              if (input(Pin_B0) say++;      error veriyor.

Birde pull down olarak kabul edilmiştir.Dedigin durumda benim bir şey yapmama gerek varmı.
Devreme ek birşeyler eklemem gerekiyormu.
Proteusda kurduğumda devreyi c0  pini (1) konumda hep.Kodlarda mı hata var bendemi bilemedim.


       
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: Salih - 18 Eylül 2016, 18:12:15
Kusura bakma son parantezi unutmuşum.

if (input(Pin_B0)) say++;
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: A0px - 18 Eylül 2016, 19:43:16
Tekrardan Rahatsız ediyorum kusuruma bakmayın.

Salih verdigi kodlar çalıştı fakat stabil çalışmıyor program.

say==20 'yi 5 düşürdüm, butona pull down yaptım ama butona 10 kere bazen 9 kere bazen 11,12 kere basınca çıkış veriyor.
Atladığım bir yermi var  acaba.
say'ı 2 yapıyorum 4 5 kere butona basınca çıkış veriyor.
Birbaşka sorum ise bu pic saniyede kac sayma yapar.
Yardımlarınızı bekliyorum.
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: RaMu - 18 Eylül 2016, 22:42:06
  Şöyle dene düzgün çalışır.
Mesele "buton arkı" forumda ve nette detaylı anlatım var.



#include <16F877.h>
#Fuses   XT,NOWDT
#use delay(clock=4000000)// 4 MHz osilatör kullanılacak
int16 say;

Void Main()
{     
      while(True)
      {
         if (input(Pin_B0)
         {
         delay_ms(30);
         say++;
         if (say==20) output_high(Pin_C0);

         while(input(Pin_B0));
         delay_ms(30);
         }
      }
}



4 MHz kristal ile saniyede 1 milyon (asm) komut işler.
Yani buton arkını bile okur.
Yada saniyede 10 bin defa butona basıp bıraksan rahatlıkla okuyabilirsin :)
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: A0px - 18 Eylül 2016, 23:50:44
Çok teşekkürler.yarın hayırlısıyla deneyip son durumu paylaşıcam.
Başlık: Ynt: Sayıcı bellı sayıya ulastıgında cıkıs vermesı
Gönderen: A0px - 19 Eylül 2016, 21:31:15
Evet Program şuan gayet stabil çalışıyor delay ms 1 yapsam bile sorunsuz çalışmaktadır.

sağolun arkadaşlar.
Sağolun picproje.