PIC Zaman sorunu?

Başlatan musti463, 23 Aralık 2014, 19:05:42

musti463

Ekteki kodu çalıştırdığımda verdiğim 15 ve 1.5 saniyelik gecikme meydana gelmiyor. Sanki gecikme yokmuş gibi mikrosaniyeler içersinde diğer resim ekrana basılıyor. Nedeni ne olabilir? Bu arada #FUSES HS kodunu kullanmayınca da çok çok ağır ekrana basılıyor resimler

#include <18F4685.h>
#device PASS_STRINGS=IN_RAM
#use delay(clock=20000000)
#include <T6963C.c>
#include <Grafikler.h>
#include <Animasyonlar.h>
#FUSES HS


void main()
{  
   

   ekran_temizle();  
   Resim_goster(LoadMomentIndicator,240,128,0,0); // "LoadMomentIndicator" ekrana basılıyor
   delay_ms(150000);
   
   ekran_temizle();  
   Resim_goster(MesaElectronics,240,128,0,0); // "MesaElectronics" ekrana basılıyor  
   delay_ms(1500);
   loading();

   ekran_temizle();
   Resim_goster(Tablolar,240,128,0,0);
   tablo_secim();
   delay_ms(1500);    
   
   ekran_temizle();
   Resim_goster(AnaGosterge,240,128,0,0); // "AnaGosterge" ekrana basılıyor 
   
   
   
   
} 
Mustafa Emir SADE

Emre MERMİ

hocam delay_ms() fonksiyonu en fazla 65535 değerini alıyor bildiğim kadarıyla.  bu yüzden 15 saniyelik beklemeyi for döngüleriyle yapmalısınız.

musti463

yok hocam sadece 1500ms yi kullandığımda da aynıydı. 150000'e daha sonra değiştirdim.İkisi arasında hiçbir zaman farkı olmuyor
Mustafa Emir SADE

omereliusuk

Delay_ms (15000); 15 saniye gecikme verir

Emre MERMİ

Alıntı yapılan: omereliusuk - 23 Aralık 2014, 19:25:10
Delay_ms (15000); 15 saniye gecikme verir

hocam 20MHZ kristal kullandığı için 3 saniye gecikme vermesi lazım değil mi ?

ibocakir

Gecikmeyi 4Mhz kristalle gerceklestirmeyi deneyin. Kodda bunu belirtmeyi unutmayin.
Bu sayede problemin sebebinin kristalde olup olmadigini anlayabilirsiniz.

Recep METE

Kod isis simülasyonda  mı böyle bir problem veriyor yoksa gerçek devrede mi.Ona göre benimde söyleceğim bir şey var da.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

karbal656

Fuses degerini birde şöyle yapıp deneyin
#use delay(crystal=20000000)

musti463

simülasyon değil hocam gerçekte
Mustafa Emir SADE

sayment

'delay_ms(int)' fonksiyonuna değeri 255'ten daha büyük değişken yada 65536'dan daha büyük sayı atayamazsınız. 15sn'lik gecikme için Timer kullanın.

musti463

for döngüsüyle 15 kere 1 sn'ye de olur
Mustafa Emir SADE