Advertisement
Electgpl

PIC - Frecuencimetro 50MHz

Mar 17th, 2017
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 KB | None | 0 0
  1. #include <16F883.h>
  2. #fuses HS,NOWDT,NOPROTECT,PUT,NOLVP,NOMCLR,INTRC
  3. #use delay(clock=20000000)
  4. #bit FlagDesbordaTimer1 = 0x0C.0
  5. #include <LCD.C>
  6. void main(){
  7.    lcd_init();
  8.    int Ciclo1byte, Ciclos;
  9.    int32 Frecuencia;
  10.    long ParteAlta, ParteBaja;
  11.    while(true){
  12.       Ciclo1byte = 0;
  13.       Ciclos = 0;
  14.       ParteAlta = 0;
  15.       FlagDesbordaTimer1 = 0;
  16.       set_timer1(0);
  17.       setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1);
  18.       while(Ciclos!=0xFF) {
  19.          Ciclo1byte = 0;
  20.          while(Ciclo1byte!=0xFF) {
  21.             if(FlagDesbordaTimer1){
  22.                FlagDesbordaTimer1 = 0;
  23.                ParteAlta++;
  24.             }
  25.             else{
  26.                delay_cycles(5);
  27.             }
  28.             delay_cycles(62);
  29.             Ciclo1byte++;
  30.          }
  31.       delay_cycles(216);
  32.       Ciclos++;
  33.       }
  34.       delay_cycles(211);
  35.       setup_timer_1(T1_DISABLED);
  36.       if(FlagDesbordaTimer1){
  37.          ParteAlta++;
  38.       }  
  39.       ParteBaja  = get_timer1();
  40.       Frecuencia = make32(ParteAlta,ParteBaja);
  41.       lcd_gotoxy(1,1);
  42.       printf(lcd_putc,"Frecuencimetro");
  43.       lcd_gotoxy(1,2);
  44.       printf(lcd_putc,"%LU Hz",Frecuencia);
  45.    }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement