Yamian

timer.c (16F877A-Showtime)

Mar 16th, 2016 (edited)
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.50 KB | None | 0 0
  1. //chen thu vien
  2. #include"main.h"
  3. void _InitTimer0(void)
  4. {
  5.     //OPTION_REG
  6.     T0CS=0; //chon che do TIMER
  7.     PSA=0; //dinh bo ti le cho TIMER
  8.     PS2=PS1=PS0=0; //chon ti le 1:2
  9.     TMR0IE=1; //cho phep ngat TIMER0
  10.     GIE=1; //cho phep ngat toan cuc
  11. }
  12. void _SETUP_TIMER_0(char source_signal,char prescaler)
  13. {
  14.     switch(source_signal)
  15.     {
  16.         case INTERNAL:
  17.         {
  18.             T0CS=0; //chon che do TIMER
  19.             PSA=0; //dinh bo ti le cho TIMER
  20.             break;
  21.         }
  22.         case EXTERNAL:
  23.         {
  24.             T0CS=1; //chon che do COUNTER
  25.             PSA=1; //dinh bo ti le cho COUNTER
  26.             break;
  27.         }
  28.         default: //khi co dieu kien nao duoc thoa man
  29.             break;
  30.     }
  31.     switch(prescaler)
  32.     {
  33.         case DIV2:
  34.         {
  35.             //chon ti le 1:2
  36.             PS2=0;
  37.             PS1=0;
  38.             PS0=0;
  39.             break;
  40.         }
  41.         case DIV4:
  42.         {
  43.             //chon ti le 1:4
  44.             PS2=0;
  45.             PS1=0;
  46.             PS0=1;
  47.             break;
  48.         }
  49.         case DIV8:
  50.         {
  51.             //chon ti le 1:8
  52.             PS2=0;
  53.             PS1=1;
  54.             PS0=0;
  55.             break;
  56.         }
  57.         case DIV16:
  58.         {
  59.             //chon ti le 1:16
  60.             PS2=0;
  61.             PS1=1;
  62.             PS0=1;
  63.             break;
  64.         }
  65.         case DIV32:
  66.         {
  67.             //chon ti le 1:32
  68.             PS2=1;
  69.             PS1=0;
  70.             PS0=0;
  71.             break;
  72.         }
  73.         case DIV64:
  74.         {
  75.             //chon ti le 1:64
  76.             PS2=1;
  77.             PS1=0;
  78.             PS0=1;
  79.             break;
  80.         }
  81.         case DIV128:
  82.         {
  83.             //chon ti le 1:128
  84.             PS2=1;
  85.             PS1=1;
  86.             PS0=0;
  87.             break;
  88.         }
  89.         case DIV256:
  90.         {
  91.             //chon ti le 1:256
  92.             PS2=1;
  93.             PS1=1;
  94.             PS0=1;
  95.             break;
  96.         }
  97.         default: //khi khong co dieu kien nao duoc thoa man
  98.             break;
  99.     }
  100. }
  101. void _SET_TIMER0(unsigned char value)
  102. {
  103.     TMR0=value; //ghi gia tri vao thanh ghi TIMER0
  104. }
Add Comment
Please, Sign In to add comment