Koşul ve değişken hakkında soru

Başlatan laotzi, 31 Ocak 2017, 16:25:00

Cemre.

Ben CCS C kullanmıyorum, hatta PIC de kullanmıyorum uzun zamandır. Proteus da yok  ;D Yani bilemiyorum. Ben olayın mantığını anlatmaya çabalıyorum. Deneme şansı olan arkadaş varsa bu soruya cevap verecektir. Mantıken çalışmaması için bir sebep yok. Eğer biryerlerde hata yapmadıysak...

laotzi

Alıntı yapılan: Cemre. - 31 Ocak 2017, 19:33:20
Ben CCS C kullanmıyorum, hatta PIC de kullanmıyorum uzun zamandır. Proteus da yok  ;D Yani bilemiyorum. Ben olayın mantığını anlatmaya çabalıyorum. Deneme şansı olan arkadaş varsa bu soruya cevap verecektir. Mantıken çalışmaması için bir sebep yok. Eğer biryerlerde hata yapmadıysak...
Bencede yok ,ancak çalışmadı .Buda benim ilerlememi engelliyor, bu kalıplarda boşluk olsun istemiyorum diğer arkadaşların yardımını beklıyorum ozaman . Yardımınız için teşekkürler .

sifirzero

Flaşor olur ustam bu kodu yaz if lerin arasına
delay_ms(500);
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

sifirzero

Arkadaşım senin kodlar yanlış yazmışsın.evde olsam hazırlar verirdim.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

laotzi

Alıntı yapılan: serkancetin - 31 Ocak 2017, 20:15:30
Arkadaşım senin kodlar yanlış yazmışsın.evde olsam hazırlar verirdim.
Musait oldugunuzda yardımcı olabilirmisiniz ?

Cemre.

Proteus'ta pulldown ile verdiğim kodu denediniz mi?

pwm.c

cemre'nin kodlar çalışıyor sorun yok.
proteusta denerken buton yerine  LOGICTOGGLE kullanın yada butun için pull-down direncini küçük değerli ayarlamanız gerekiyor. örneğin 330 ohm gibi. buton uygulamaları genelde pull-up ile yapılmalıdır ki gürültü sorunu oluşmasın diye. bu sayede büyük değerli dirençler bağlanabilir.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

Cemre.

Pull-up kullanılması konusunda @pwm.c hocama katılıyorum.

laotzi

Alıntı yapılan: pwm.c - 31 Ocak 2017, 22:52:11
cemre'nin kodlar çalışıyor sorun yok.
proteusta denerken buton yerine  LOGICTOGGLE kullanın yada butun için pull-down direncini küçük değerli ayarlamanız gerekiyor. örneğin 330 ohm gibi. buton uygulamaları genelde pull-up ile yapılmalıdır ki gürültü sorunu oluşmasın diye. bu sayede büyük değerli dirençler bağlanabilir.
Devreyı mümkünse resmını veya dosyasını atabilirmisiniz ben yaptım Pul-down kullandım ama olmadı Pul -up' ta kullandım .

pwm.c

Alıntı yapılan: laotzi - 31 Ocak 2017, 23:33:02
Devreyı mümkünse resmını veya dosyasını atabilirmisiniz ben yaptım Pul-down kullandım ama olmadı Pul -up' ta kullandım .
https://www.dropbox.com/s/2gxxbh834yf6yvt/butonled.zip?dl=0
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

mg1980

#25
Kodda buton A0'da ama şemada RESET pininde.
Düzeltme: Yanlış görmüşüm ama A0 bağlantısı öyle olmaz her halde.

laotzi

Alıntı yapılan: pwm.c - 31 Ocak 2017, 23:45:27
https://www.dropbox.com/s/2gxxbh834yf6yvt/butonled.zip?dl=0
Emek ve ugraşınız için teşekkür ediyorum ancak butonla neden çalışmadı ? Butonla daha önce bu tür devreleri çalıştırmışlığım var .  Bu devreyi somut olarakta deneyeceğim  sonucu yarına kadar yazarım .

laotzi

Alıntı yapılan: mg1980 - 31 Ocak 2017, 23:57:31
Kodda buton A0'da ama şemada RESET pininde.
Düzeltme: Yanlış görmüşüm ama A0 bağlantısı öyle olmaz her halde.

Evet a0 ' a birde Pull direnci ekledim .

laotzi

Alıntı yapılan: Cemre. - 31 Ocak 2017, 22:56:06
Pull-up kullanılması konusunda @pwm.c hocama katılıyorum.
Sizin kodunuzu açıklarmısınız rica etsem . Değişken 1 olduğunda neden tekrar 0' a eşitliyoruz .

dursuncemal

#29
4mhz kristal kulangiginiza gore sizin islemciniz saniyede 1miyon islem yapiyor demektir. siz butona bastiginiz anda x degiskenininz okadar hizli sayiyor ki x degiskeninin 1 olup 2 oldugu andaki b portuna bagli olan ledin yanip sondugunu goremezsiniz.belki simulasyon programinda gorursunuz.oncelikle buton okuma mantigini iyice ogrenmelisiniz.bununda bir cok yolu var.size kabaca soyle yardimci olmaya calisayim.

not: direnciniz pull down olacak
#include <16F628a.h>
#fuses INTRC_IO,NOWDT,NOPUT //,NOBROWNOUT
#use delay(clock = 4M )
int x = 0 ; 
void main()
{
set_tris_b (0b00000000) ; 
set_tris_a (0b11111111) ; 


   while(TRUE)
   {


if  (input(pin_a0)) ;
{ 

 x ++ ;

while{pin_a0 == 1}//eger elimiz butona basili ise burada bekleyecegiz.

}

if ( x == 1 )  {  output_high(pin_b1) ; } else{output_low ( pin_b1) ;} //eger x degiskeni 1 ise potumuz aktif (+) degil ise pasif(-)

if ( x == 2 ) {  x = 0; }// eger x degiskenimiz 2 oldu ise x = 0;
  

   

      //TODO: User Code
   }

}


:=