PICC de temel bir sorun...

Başlatan cenko77, 10 Aralık 2006, 00:28:33

cenko77

herkese tekrar slmlar,

Aşağıda verdiğim PICC kodum bir türlü istediğimi yapmıyor. İstediğim şey, PortC de 1. 2. ve 3. pinlerimi (16f877a) önce set edecek sonra reset edecek ve while loop a girip en son olarak PortC yi clear edecek....

Fakat ne hikmetse while loop e hiç girmiyor ve main kodumu bir loop olarak görüp sürekli portc nin 1 2 ve 3. pinlerini set reset yapıyor.

Mutlaka PICC kullanmam gereken bir proje için gerekli olan bu programın çok çok temel bir sorundan dolayı ilerlememesi beni kızdırıyor...

Lütfen yardım, saygılar....



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

main()
{
PORTB = 0;
PORTD = 0;
PORTC = 0;
TRISB = 0;
TRISC = 0;
TRISD = 0;

PORTC = 1;
DelayMs(250);
DelayMs(250);
PORTC = 0;
PORTC = 2;
DelayMs(250);
DelayMs(250);
PORTC = 0;
PORTC = 4;
DelayMs(250);
DelayMs(250);


while (1==1)
{
 PORTC = 0;
}
 
}

kurumahmut

while (1==1)
{
PORTC = 0;
}


yerine

PORTC = 0;
while (1);


deneyin...

cenko77

tamam deneyip size sonucu yazacağım...

başka önerisi olan arkadaş varsa çekinmesin yazsın..

teşekkürler

piedos

Alıntı yapılan: "cenko77"herkese tekrar slmlar,


Fakat ne hikmetse while loop e hiç girmiyor ve main kodumu bir loop olarak görüp sürekli portc nin 1 2 ve 3. pinlerini set reset yapıyor.

}

while kısmında sorun yok, problem WDT sorunu bence

WDT yi kapat yada belirli zamanlarda temizle,

not:
PORTC=0;
PORTC=2;

yerine

PORTC=2;

yeterli olur

EDIT:

Proteus ta debug yaparsan, devre kurmana bile gerek yok, dikkat simülasyon değil DEBUG,

compilerın ürettiği .cof dosyasını proteusa yükle ve view simulation logu seç

1. source-> add .cof file
2. debug-> execute
3. debug-> view simulation log


başarılar
Einstein: "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former."

cenko77

teşekkürler,

iki öneriyi de bu akşam deneyeceğim ve sonucu size yazacağım teşekkürler

YESILKOD

while(1==1)   aslında doğru gibi gözüksede yanlış bir yaklaşım onun yerine;


while(1)
   PORTC=0;

veya

for(;;)
   PORTC=0;

veya

do
    {
    PORTC=0;
    }while(1);

kullanılabilir. Hangisi hoşuna gidiyosa onu kullanabilirsin ;)

cenko77

piedos


Allah senden razı olsun!

Dediğin gibi WDT ı disable edince sorun çözüldü!!

Allah tuttuğunu altın etsin, bizi çok büyük bir sıkıntıdan kurtardın dostum

SAĞOL VAĞROL!

CENK