Porttaki durumu değişkene yazmak

Başlatan equ, 15 Kasım 2012, 17:56:01

equ

Merhaba,
Hitech compiler ile pic16f1826 kullanıyorum. Yapmak istediğim şey; ssi haberleşmesi yapan bir cihaza her clock verdiğimde, dışarı verdiği datayı değişkene atmak. 12 bitlik bir veri olacak (ama şimdilik 8 tanesini halletmeye çalışıyorum). Tek clockta 0 yada 1 gelecek, bunu data değişkeninin 8. biti yapacağım. Sonraki clockta gelen 0 yada 1 i datanın 7. biti vs.. yazdığım kod şu şekilde, fakat istediğim sonucu alamıyorum. Yardımcı olursanız sevinirim..

#define clockout RA2
#define datain RA3

unsigned char data;
unsigned char buf;
unsigned int i;

while(1){

for(i=0;i<=8;i++){

clockout=0;
DelayUs(6);
clockout=1;

buf=datain;
data=data+(buf<<i);

}

serhat1990

#1
Merhabalar ; şu komutlar işini görür sanırım ... Eğer clockları doğru ayarladıysan olması lazım bu komut setinin .

İyi Çalışmalar Dilerim.

#define clockout RA2
#define datain RA3

unsigned char data=0;

for(i=0;i<8;i++)

{
   
clockout=0;
DelayUs(6);
clockout=1;

data<<=1;
if(datain)data|=0x01;

}