Merhaba arkadaşlar
Shiftregister sürmek için yazdığım kodda bir problem yaşıyorum.
shift[3]=1;
void yaz()
{
onay=0;
for(int k=1;k<=48;k++)
{
clock=0;
if(shift[k]==1)
{data=1;}
else
{data=0;}
clock=1;
}
__delay_ms(1);
clock=0;
onay=1;
__delay_ms(2);
onay=0;
}
Bu şekildeyken kesinlikle if bloğunda doğru kabul edip datayı 1 yapmıyor sürekli else ye giriyor. Fakat denemelerde
if(shift[3]==1)
{data=1;}
else
{data=0;}
bu şekilde yaptığım zaman if yapısı doğru kabul edip datayı 1 yapıyor.
Sizce bu sorun neden olabilir. Ayrıca smilasyonda çalışıyor fakat devre üzerinde çalışmıyor. Devreyi kontrol ettim ayrı bir programda karşılaştırma yapmadan verileri gönderdiğim zaman sıkıntısız çalıştı.