Sayıcı bellı sayıya ulastıgında cıkıs vermesı

Başlatan A0px, 17 Eylül 2016, 19:35:37

A0px

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.

muhittin_kaplan

Hoşgeldiniz..
[Lütfen Türkçemize Daha İyi Davranalım..]

canbulut

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?

mufitsozen

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.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

EFESU


A0px

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

Salih

#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));
      }
}

A0px

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ı

Salih

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.

A0px

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.


       

Salih

Kusura bakma son parantezi unutmuşum.

if (input(Pin_B0)) say++;

A0px

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.

RaMu

  Şö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 :)
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

A0px

Çok teşekkürler.yarın hayırlısıyla deneyip son durumu paylaşıcam.

A0px

Evet Program şuan gayet stabil çalışıyor delay ms 1 yapsam bile sorunsuz çalışmaktadır.

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