Merhaba arkadaşlar başlıktanda anlaşıldığı üzere bir döngü kurgulayamadım, istediğim döngü şöyle;
RA0 ucuna bağlı olan butona basıldığında RB0 a bağlı olan led 250 ms yanacak ve sonra sönecek elim butonda basılı kalsa bile bu işlem bir daha işlemeyecek,eli butondan kaldırıp tekrar butona bastığımda yine 250 ms yanacak ve sonra sönecek benim döngüm aşağıdaki gibi nerede yanlış yaptığımı söyler misiniz?Bana bir yol gösterir misiniz?
#include<pic.h>
#include<delay.c>
main (void)
{
int i=0;
TRISA=1;
TRISB=0;
if(RA0==1)
{
for(;i<1;i++)
{
RB0=1;
DelayMs(250);
RB0=0;
DelayMs(250);
i++;
}
}
else
{
RB0=0;
}
Bir yardımcı bit kullanmanı tavsiye ederim. Bu biti buton basılınca "0" yap butona basılmadığında "1" yap. if deyiminde And ile yardımcı bitide yaz.
#include<pic.h>
#include<delay.c>
main (void)
{
int i=0;
TRISA=1;
TRISB=0;
if(RA0==1)
{
for(;i<1;i++)
{
RB0=1;
DelayMs(250);
RB0=0;
DelayMs(250);
i++;
}
}
else
{
RB0=0;
}
Yukarıdaki programın bahsettiğin gibi çalışması için şu şekilde yazmalısın;
#include<pic.h>
#include<delay.c>
main (void)
{
TRISA=1;
TRISB=0;
if (RA0)
{
RB0=1;
DelayMs(250);
RB0=0;
while (!RA0) {;;}
}
else
{
RB0=0;
}
}
malesef olmadı arkadaşım , başka yolla yapaz mıyım ya?
birde şöyle düşündüm iki buton aynı anda basıldığında yanacak ama yazdığım kodda hata var sanırım ve şartını koyamadım
örneğin;
if(RA0&&RA1==1)
{
RB0=1;
}
bu kod doğru mudur acaba?
istediğim program çalışma şekli şöyle;
RA0 butona basıldığında RB0 aktif olacak
RA1 butonuna basıldığında ise RB0 250 ms sonda sıfır olacak
bu programı yazdım ama gecikmeyi koyamadım[code]
if(RA1==1)
{
RB0=0; //Buraya DelayMs (250) ekliyorum ama işlemiyor
}