portd çıkışı değiştiremiyorum

Başlatan satilla, 24 Ekim 2010, 13:10:15

satilla

bu kodda rd.5 high oluyor ancak tekrar low olmasını sitedigim halde
low olmuyor mantık nedir üstadlarım

#include <pic.h>
#include "delay.h"

const unsigned char karakter[]={0b00100000,0b01010000,0b10001000,0b11111000,0b10000100};
int m,bekle=3,i,j,k,deger,degisken,harf_sayisi=1;
const char kelime={'A'};
const unsigned char tarama[]={0b11111110,0b11111101,0b11111011,0b11110111,0b11101111,0b11011111,0b10111111,0b01111111};
char satir0[32];  
char satir1[32];
char satir2[32];
char satir3[32];
char satir4[32];
char satir5[32];
char satir6[32];
char satir7[32];
 

void sifir()
{
RD6=0;DelayMs(20);RD4=0;
RD6=1;DelayMs(20);RD4=0;
RD6=0;DelayMs(20);RD4=0;

}
void bir()
{
RD6=0;DelayMs(20);RD4=1;
RD6=1;DelayMs(20);RD4=1;
RD6=0;DelayMs(20);RD4=1;
RD6=0;DelayMs(20);RD4=0;

}

main(void)
{
PORTB=0;
PORTD=0;
PORTC=0;
PORTE=0;
PORTA=0;

TRISC=0;
TRISD=0;
TRISE=0;
TRISA=0;
TRISB=0;
ADCON1=7;


for(;;){

RD5=1;DelayMs(20);RD5=0;



for (i=0;i<8;i++){
PORTB=tarama[i];



}



}
}

stlg

for dongusunde rd5=0 ın arkasından hemen rd5=1 yapıyorsun bir bekleme olmadıgından rd5=0 olamıyor  ve hep bu dongude kalıyor
ALLAHA EMANET OLUNUZ Hoştur bana senden gelen,  Ya gonca gül yahut diken,  Ya kaftandır yahut kefen,  Kereminde hoş lütfunda hoş.

satilla


stlg

rd5=0 dan sonra gecikme yok ,bu işlem tam gerceklesirken mikrosaniyeler mertebesinde for dongusu basa donuyor ve rd5=1 komutu işliyor, arkasından sizin gecikme geliyor bu sekilde surekli rd5=1 olur
ALLAHA EMANET OLUNUZ Hoştur bana senden gelen,  Ya gonca gül yahut diken,  Ya kaftandır yahut kefen,  Kereminde hoş lütfunda hoş.

satilla

#4
evet hcoam gecikme koydum ve düzeldi hala aklımda basic mantıgı var o yzuden yazım biçime daha ayak uyduramadım C'nin

aynı kodu protonda derliyorum hiç bir sorun yok

ama delay ikinci for döngüsünden sonra koyamzsam portlarda tarama olmuyor illa süslü parantez içinde
for döngüleirinn içine delay eklemem gerekiyor