Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

TIMER0 nasıl kurulur?

Başlatan hasanuslu, 23 Mart 2005, 13:47:42

hasanuslu

ben TIMER0'ın nasıl kurulduğu hakkında bilgi rüca ediyorum
komuta baktım;
RCTT ve 16 yazıyordu burada RTCC ve 16nın anlamı nedir ne kadar sürede devreye girer yardımcı olursanız sevinirim.
örneğin saat yapımında 1snde bir kesme oluşturup saniyeyi bir arrtırmayı nasıl yapabilirim teşekkürler iyi çalışmalar

Ersin

bu orneklerde var b utdaki folderda bulabilirsin "C:\Program Files\PICC\Examples"  :  


/////////////////////////////////////////////////////////////////////////
////                           EX_STWT.C                             ////
////                                                                 ////
////  This program uses the RTCC (timer0) and interrupts to keep a   ////
////  real time seconds counter.  A simple stop watch function is    ////
////  then implemented.                                              ////
////                                                                 ////
////  Configure the CCS prototype card as described below.           ////
////                                                                 ////
////  This example will work with the PCM and PCH compilers.  The    ////
////  following conditional compilation lines are used to include a  ////
////  valid device for each compiler.  Change the device, clock and  ////
////  RS232 pins for your hardware if needed.                        ////
/////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services         ////
//// This source code may only be used by licensed users of the CCS  ////
//// C compiler.  This source code may only be distributed to other  ////
//// licensed users of the CCS C compiler.  No other use,            ////
//// reproduction or distribution is permitted without written       ////
//// permission.  Derivative programs created using this software    ////
//// in object code form are not restricted in any way.              ////
/////////////////////////////////////////////////////////////////////////


#if defined(__PCM__)
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)  // Jumpers: 8 to 11, 7 to 12

#elif defined(__PCH__)
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)  // Jumpers: 8 to 11, 7 to 12
#endif

#define INTS_PER_SECOND 76     // (20000000/(4*256*256))

BYTE seconds;      // A running seconds counter
BYTE int_count;    // Number of interrupts left before a second has elapsed


#int_rtcc                          // This function is called every time
void clock_isr() {                 // the RTCC (timer0) overflows (255->0).
                                  // For this program this is apx 76 times
   if(--int_count==0) {           // per second.
     ++seconds;
     int_count=INTS_PER_SECOND;
   }

}


void main() {

  BYTE start;

  int_count=INTS_PER_SECOND;
  set_timer0(0);
  setup_counters( RTCC_INTERNAL, RTCC_DIV_256 | RTCC_8_BIT);
  enable_interrupts(INT_RTCC);
  enable_interrupts(GLOBAL);

  do {

     printf("Press any key to begin.\n\r");
     getc();
     start=seconds;
     printf("Press any key to stop.\n\r");
     getc();
     printf("%u seconds.\n\r",seconds-start);

  } while (TRUE);

}

SpeedyX


hasanuslu


Erol YILMAZ

@Hasanuslu Timer0 icin cok ozel seyler yok.

main fonksiyonunda

setup_counters(RTCC_INTERNAL,RTCC_DIV_64); // 3276800'de 50 hz
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);

fonksiyonlari ile Timer0 kesmeni ayarlar ve aktive edersin.

Kesme oldugunda ise programin

#INT_RTCC
void ISR()
{
.............
return;
}

fonksiyonuna dallanir.   #INT_RTCC  bolumu kesme fonksiyonu oldugunu belirtir. ISR()  fonksiyonu icin ismin bir onemi yoktur, degistirebilirsin. ..... yerine komutlarini gireceksin...

Kolay Gelsin...

hasanuslu

çok teşekkür ederim Erol;
yardımın için tsk ederim;
sana bazı konularda danışmak istiyorum.
pic cye yeni başladım takıldığım yerler oluyor.tekrar teşekkür ederim.
görüşmek üzere iyi çalışmalar....

Erol YILMAZ

Tesekkurlerini benim de cok sey ogrendigim Picproje adina kabul ediyorum. Problemler surekli olacaktir, bazilari anlatilabilecek kadar kolaydir. Bazilari ise anlatilamaz :) Elimizden geldigince yardimci olmaya calisiriz.