T

ete hocam namınızı çok duydum inş yardımcı olursunuz

Başlatan tersoll, 16 Haziran 2014, 16:10:52



tersoll

#include "C:\Users\server\Desktop\aaaaa\main.h"
#use fast_io(b) //Port yönlendirme komutlar? B portu için geçerli

#use fast_io(a) //Port yönlendirme komutlar? B portu için geçerli


int i=0; // Tamsay? tipinde deg(is,ken tan?mlan?yor
int x=0;

//****************** Timer0 Kesmesi *****************************
#int_timer0  // Timer0 kesmesi

void  timer0_kesme ()
{
    set_timer0(60);   // TMR0 deg(eri belirleniyor
    i++;   // i deg(eri 1 artt?r?l?yor
    if (i==50)  // i deg(eri 20'a es,itse RB0 ç?k?s,? lojik-1 olsun
       output_high(pin_b0);
    if (i==40)  // i deg(eri 40'ye es,itse RB0 ç?k?s,? lojik-1 olsun ve i deg(eri s?f?rlans?n
       {
          output_low(pin_b0);// 10 sn lik çıkış
          i=0;
          x++; 
          if(x==5){
         output_toggle(pin_b1);
          x=0;
       }
}
}

void main()
{
   set_tris_b(0x00);   // B portu komple ç?k?s,
   output_b(0x00);     // B portu ç?k?s,? ilk anda s?f?rlan?yor
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_128);
   set_timer0(60);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(GLOBAL);

   // TODO: USER CODE!!
  while(1);   // Sonsuz döngü



}

hocam buda program burda hangilerini değiştirmem gerekiyor yardımcı olursanız sevinir haftalardır uğraşıyorum saniyeler kaymasın diye lütfen beni bu dertten kurtarın saniyeler ile röle çektiricem ama kaymaması gerek çok tşkr ederim

tersoll

#include "C:\Users\server\Desktop\aaaaa\main.h"
#use fast_io(b) //Port yönlendirme komutlar? B portu için geçerli

#use fast_io(a) //Port yönlendirme komutlar? B portu için geçerli


int i=0; // Tamsay? tipinde deg(is,ken tan?mlan?yor
int x=0;

//****************** Timer0 Kesmesi *****************************
#int_timer0  // Timer0 kesmesi

void  timer0_kesme ()
{
       // TMR0 deg(eri belirleniyor
    i++;   // i deg(eri 1 artt?r?l?yor
    if (i==50)  // i deg(eri 20'a es,itse RB0 ç?k?s,? lojik-1 olsun
       output_toggle(pin_b0);

}

void main()
{
   set_tris_b(0x00);   // B portu komple ç?k?s,
   output_b(0x00);     // B portu ç?k?s,? ilk anda s?f?rlan?yor
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_128);
 
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(GLOBAL);

   // TODO: USER CODE!!
  while(1);   // Sonsuz döngü



}

hocam bu şekildemi yapayım doğrumu hocam

Mucit23

Şu kodları direk derleyip kullan.
#include <16F628A.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(int=4000000)

#use fast_io(a)
#use fast_io(b)

unsigned int i=0,z=0;

#int_timer1  // Timer0 kesmesi
void  timer1_kesme ()
{
    set_timer1(55543);
    i++; 
    if (i==100)
    {
       output_toggle(pin_b0);
       i=0;z++;
       if(z==10)
       {
         output_toggle(pin_b1);
         z=0;
       }
    }
    clear_interrupt(int_timer1);
}

void main()
{
   set_tris_a(0x00);
   set_tris_b(0x00);
   output_a(0x00);
   output_b(0x00);
   
   setup_ccp1(CCP_OFF);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
   set_timer1(55543);
   enable_interrupts(INT_TIMER1);
   enable_interrupts(GLOBAL);
   
   while(TRUE)
   {
     output_high(pin_b7);
   }

}

Timer 1 kullandım
portb.0 1 saniye aralıklarla konum değiştirir.
Portb.1 10 saniye aralıklarla konum değiştirir.

Edit;
Bu arada foruma eklediğin kodlar için kod eklentisi kullanmalısın.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

tersoll

Hocam cok tskr ederim bu sekilde yapinca saniyelerde kayma olmaz
Umarim yarin hemen denicem  simdi formlarda bakiyorum da
Bazi kisiler kesme ile saniyelerde kayma olur diyolar bunu ancak
Ds1302 ile kayma olmaz diyolar sizin bu konuda dusuncelerinizi
Alabilirmiyim Saygilar

tersoll


tersoll

Derledim hocam simdi isiste deniyorum ins kaymaz
Yarini bekleyemedim

tersoll

Hocam 5 dakikadan sonra isista 10-20-30-40 sayarken sonra
11-21-31-41 diye gidiyo yine kayma var hocam :(

Mucit23

 ;D Yahu sen isise ne bakıyon... İsisin hata yapmadığı ne belli?

Gerçekte denesene, Yada lojik analyser ile bak çıkışa. Sistemde dediğin gibi bir kaymak yok.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

tersoll


Mucit23

Neye göre kayma var? Eğer isis'in saatine göre ölçüyorsan hata yapıyorsun. İsis çoğu zaman gerçek zamanlı çalışmaz. Benim verdiğim programda hata yok. Milleti boşuna uğraştırma
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

tersoll

timer1 harici osilatör kodu ne acaba 32khz onu bi deneyim

tersoll

amacım uğraştırmak değil şöyle izah edeyim;

bende bir zaman rölesi var dijital ben bu zaman rölesini 10 set ediyorum ve saymaya başlıyor 9-8-7-6-5-4-3-2-1-0 picede 10 sn ye verip aynı anda başlatıyorum, picin çıkışan bir led koyup   zaman rölesine bakıyorum 9-9 arası bir süre çalışırken sonra 0-0 arası sonra 1-1 sonra 2-2..... diye picin led lambası zaman rölesine göre değişkenlik yapıyor anlatabildim umarım böyle olması sorun olurmu tşkr ederim

tersoll

bu arada siz dahili osilatörü kullanmışsınız doğrumu tşkr ederim

Powered by EzPortal