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
129,550
Mesajlar
927,845
Kullanıcılar
452,166
Son üye
özgür çetin14

Yeni konular

Çevrimiçi üyeler

Geri
Üst