Tekrar program atana kadar PIC çalışmaması

Başlatan baran123, 05 Kasım 2016, 22:44:41

mehmet

Bu yeni serilerde zaten HFIOFS uyuz ediyor...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

JOKERAS

OSCCON = 0x70;
Delay_ms(1000);
while (!OSCCONbits.HFIOFS);

Bu durum mantıksız değilmi?

baran123, while (!OSCCONbits.HFIOFS);  İşlemci Clocku'nun stabil hale gelip gelmediğini kontrol eden bir
Flag.Dolayısı ile önemi yok.

Kullandığınız derleyici Pro'mu yoksa Free'mi?
Free ise saçma sapan şeyler yapabiliyor.

Siz çalışmıyor dediğiniz işlemciyi bir müddet bekleyin şöyle bir dakika falan.
Muhtemelen çalışması gerek.
Bir deneyin derim.


 

baran123

@JOKERAS 1 dakika değil devre saatlerce masamda açık kaldı fakat hiç çalışmaya başlamamıştı.
Zaten şu internal olayına gıcık kaptım. :D
Arada hala araştırrım ama bununla ilgili düzgün bir appnote vs görmedim.

JOKERAS

Kodunuzda İnterrupt kullanıyormusunuz?
Eğer kullanıyorsanız ve İnterrupt Flag'ini temizlememişseniz
False İnterrupt oluşmuş olabilir.

void manin(void) {

     INTCONbits.TMR0IE = 1;
     INTCONbits.GIE = 1;

     Üstteki kod False İnterrupt oluşturur.

     PIRbits.TMR0IF = 0;  //False İnterrupt önlemi.
     INTCONbits.TMR0IE = 1;
     INTCONbits.GIE = 1;

}

while (!OSCCONbits.HFIOFS); Buna gıcık olacak bir durum yok.
Bu bir çok işlemcide var.
Eğer işlemcide hata olsa
AN'larında ERRATA'larda belirtlirdi.

Ayrıca while (!OSCCONbits.HFIOFS);  bu koddan önce veya sonra Delay koymanın hiç bir mantığı yok.
Derleyici Free ise böyle tuhaf şeyler olabiliyor.


baran123

Hocam vizeler bitsin derinlemesine gireceğim bu konuya :)


mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

Okan AKÇA

Tekrar kodu  islemcidem okuyun hexde değişiklik varmı kontrol edin

JOKERAS

#23
mehmet usta,İngilizce bilmiyorum.
Google amcanın çevirisinden şunu anladım.

Orada İşlemcinin Osilatör Start-Up durumunu ve nasıl RESET olduğunu anlatıyor.
Timing'te zaten gecikme olduğundan bahsediyor.

while (!OSCCONbits.HFIOFS);  Bu kod olsada olmasada,bu koddan önce,sonra
Delay olsada olmasada işlemcinin çalışması gerek.
Bir anormallik var!





Sanırım Fareyi yakaladım...

#pragma config FOSC = INTIO2    // Oscillator (Internal RC oscillator)

berat123 kardeş,sen yukarıdaki kodda Internal RC Osliatör seçmişsin ama HS Osilatörün Stabil olmasını bekliyorsun.
#pragma config FOSC = HS yapıp denermisin?

Ya bu vize işi ne iş?Geçen bir arkadaşta Vize alacağım diyordu.
Neye yarıyor nereden alınıyor bu bizde alalım:)





Mucit23

Bazen olmaz.. Aslında çok basit bir şeyi unutmuşsundur ama o sıra onu goremezsin. Biraz ara verip tekrar dene ☺