bir anahtar iler sırayla 5 led yakma ve başka anahtarla söndürme nasıl yapılır???

tersoll

Üye
Katılım
25 Nis 2010
Mesajlar
142
Puanları
1
Yaş
39
bir giriş butonum ile 3-5-10 neyse ledi yakıp başka bir giriş ile söndürmek istiyorum gerisin geriye c dilinde kısa bir örnek yazabilirmisiniz yardımlarınızı bekliyorum
 
demekki neymiş kasaba minnet etmemek gerekiyomuş
 
afiyet olsun.
ccsc olarak diğer c mantık olarak değişen pek bi şey yok, aşağıda 8 pin için ayarlı. daha çok pin için kaymalı kaydedicileri kullanmanı tavsiye ederim.
mantık olarak basit. >> ve << kaydırma operatörleri ile butana basılıp basılmadığına bakılarak değişken içeriği kaydırılıp çıkışa veriliyor.

kolay gelsin.

#define saga_kaydir_tusu pin_xx;
#define sola_kaydir_tusu pin_yy;
#define cikis_port output_z;
int8 cikis_deger;

while(TRUE) // sonsuz döngü için her zaman doğru şartı
{
if(input(sola_kaydir_tusu ) // sola kaydır tuşuna basıldıysa
{
delay_ms(10); // buton arkına karşın bekle
cikis_deger << 1; // değişkenin değerini 1 sola kaydır binary olarak 0b00000001 ise 0b00000010 yapar
cikis_deger++; // değişkeni 1 artır binary olarak 0b00000001 dan 0b00000010 olunca 1 ekleyerek 0b00000011
cikis_port(cikis_deger); // cikis portuna (ledlerin bağlı olduğu porta) değişkenin degerini aktar
while(input(sola_kaydir_tusu ); // tuştan elini çekinceye kadar bekle
}

if(input(saga_kaydir_tusu ) // saga kaydır tuşuna basıldıysa
{
delay_ms(10); // buton arkına karşın bekle
cikis_deger >> 1; // değişkenin degerini 1 sağa kaydır binary olarak 0b00000011 ise 0b00000001 yapar
cikis_port(cikis_deger); // cikis portuna (ledlerin bağlı olduğu porta) değişkenin degerini aktar
while(input(saga_kaydir_tusu ); // tuştan elini çekinceye kadar bekle
}
}
 
baya bi doydum saol yadelim hemen deneyeceğim :)
 
#include "C:\Users\ESMA\Desktop\DENEME\main.h"
#define saga_kaydir_tusu xx;
#define sola_kaydir_tusu yy;
#define cikis_port output_b;
int8 cikis_deger;


void main()
{


setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);


set_tris_a(0x01);
set_tris_b(0x00); // B portu tümüyle çıkış olarak yönlendiriliyor
output_b(0x00);

while(TRUE) // sonsuz döngü için her zaman doğru şartı
{
if(input(sola_kaydir_tusu) // sola kaydır tuşuna basıldıysa
{
delay_ms(10); // buton arkına karşın bekle
cikis_deger << 1; // değişkenin değerini 1 sola kaydır binary olarak 0b00000001 ise 0b00000010 yapar
cikis_deger++; // değişkeni 1 artır binary olarak 0b00000001 dan 0b00000010 olunca 1 ekleyerek 0b00000011
cikis_port(cikis_deger); // cikis portuna (ledlerin bağlı olduğu porta) değişkenin degerini aktar
while(input(sola_kaydir_tusu ); // tuştan elini çekinceye kadar bekle
}


if(input(saga_kaydir_tusu ) // saga kaydır tuşuna basıldıysa
{
delay_ms(10); // buton arkına karşın bekle
cikis_deger >> 1; // değişkenin degerini 1 sağa kaydır binary olarak 0b00000011 ise 0b00000001 yapar
cikis_port(cikis_deger); // cikis portuna (ledlerin bağlı olduğu porta) değişkenin degerini aktar
while(input(saga_kaydir_tusu ); // tuştan elini çekinceye kadar bekle
}
}


bu şekilde yaptım ama birsürü hata veriyo nerde yalnış yapıyorum
 
tuuuuuu.jpg
bu şeklilde hatalar veriyor
 

Forum istatistikleri

Konular
128,179
Mesajlar
915,658
Kullanıcılar
449,940
Son üye
yavuzturan

Yeni konular

Geri
Üst