Autor Tema: Sobre como hacer un contador en CCS Compiler.  (Leído 4504 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado tone04

  • PIC10
  • *
  • Mensajes: 9
Sobre como hacer un contador en CCS Compiler.
« en: 28 de Febrero de 2013, 20:16:22 »
#include <16f84.h>

#use delay (clock=4000000)
#byte portb=0x06
#byte trisb=0x86
#byte trisa=0x85
#byte porta=0x05
#int_ext
void prueba (void)
{
porta = 0b0000;
portb = 0b00000010;
delay_ms (500);


}
void main ()
{
unsigned char i;
trisa = 0b0000;
trisb =0b00000001;
portb=0;
enable_interrupts (int_ext);
ext_int_edge (h_to_l); // se puede cambiar al reves si se quiere de bajo a alto : ext_int_edge (l_to_h);
enable_interrupts (global);
while (1)
{
for(i=0;i<=255; i++)
(
porta=i
);
portb=0;

}
}

No se si alguien sepa como se pueda compilar en el compilador paso a paso lo que hace el codigo y como se pueda modificar el contador para cuando hace el pulso realice el conteo si pueden auxiliarme saludos

Desconectado sirias52

  • PIC10
  • *
  • Mensajes: 40
Re: Sobre como hacer un contador en CCS Compiler.
« Respuesta #1 en: 01 de Marzo de 2013, 02:01:50 »
Hola tone04.

Pues tu quieres hacer un contador utilizando la interrupción externa del PIC, (según el código que has puesto)

 Por aca te dejo el codigo que hace lo que necesitas

Citar
#include <16f84a.h>         //pic a utilizar         
                 
#Fuses XT ,NOWDT

#use delay (clock=4000000)         //Fosc=4Mhz*/


#define LCD_ENABLE_PIN  PIN_A2
#define LCD_RS_PIN      PIN_A0
#define LCD_RW_PIN      PIN_A1
#define LCD_DATA4       PIN_B4
#define LCD_DATA5       PIN_B5
#define LCD_DATA6       PIN_B6
#define LCD_DATA7       PIN_B7

#include <lcd.c>

int x;

#int_EXT
void  EXT_isr(void)
{
x++;

}

void main() {

    enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);
   lcd_init();
   
 while(1)
   {
 lcd_gotoxy(1,1);
   printf(lcd_putc,"X=%u",x);
 
}
}

Y si  necesitas verlo paso a paso el codigo pues puedes utilizar el proteus el archivo 16F84A.cof

Saludos.

Desconectado callecuatro1976

  • PIC12
  • **
  • Mensajes: 85
Re: Sobre como hacer un contador en CCS Compiler.
« Respuesta #2 en: 04 de Enero de 2015, 09:30:46 »

#include <16f873a.h>
#device adc=10
#fuses NOWDT,BROWNOUT,XT,NOLVP,noPUT
#use delay (clock=4m)
#define use_portb_lcd true
#include <lcd420.c>

 
float valor,volt,valor2,amper;


 int32 tiempo=0;//Tiempo
   int32 tiempoS;// conteo de segundos
   int32 tiempoH;// conteo de minutos
   int32 tiempoM;// conteo de horas
 
   
 #int_ext
void interupcion_externa (void)
{   
 if(input(PIN_A1)==true)
 tiempo++;



if(input(PIN_A1)==false)
tiempo
=0;

}
 


#INT_TIMER2

void  timer2_isr(void)
{
   
 set_timer2(25536);
 
 if (tiempo < 17999999)tiempo ++; else tiempo=0;
 

 
 
}

 void main(){
 
    setup_adc_ports(an0_an1_an3);
setup_adc(adc_clock_div_32  ); 
 
  lcd_init();
   lcd_gotoxy(1,3);
   lcd_putc("secion");
   
    lcd_gotoxy(2,1);
   lcd_putc("Volt     Amper");
 
  while (true){
 
 setup_timer_2(t2_div_by_4,124,1);
 enable_interrupts(int_timer2);
 enable_interrupts(INT_EXT);
  ext_int_edge(L_TO_H);
 enable_interrupts(global);
 
  set_adc_channel(0);
   delay_us(20);
   volt = read_adc();
   delay_us(500);
   valor=volt*50/1023;
   lcd_gotoxy(2,2);
   printf(lcd_putc,"%04.2f",valor );
   delay_ms(500);
 
   
   set_adc_channel(3); 
   delay_us(20);
   amper = read_adc();
   delay_us(500);
   valor2=amper*18/1023;
   lcd_gotoxy(11,2);
   printf(lcd_putc,"%04.3f",valor2);
   delay_ms(200);
 
    bucle:

   lcd_gotoxy(1,4);
   tiempoS=((tiempo*20)/1000);//pasar de numero de instrucciones a segundos
   tiempoH=tiempoS /3600;//saco horas
   tiempoS=tiempoS-(tiempoH*3600);//resto horas de los segundos
   tiempoM=tiempoS/60;//saco minutos
   tiempoS=tiempoS - (tiempoM*60);//resto minutos de los segundos
   printf(lcd_putc,"%02lu:%02lu:%02lu",tiempoH,tiempoM,tiempoS);
    goto bucle; 

}

   }

como puedo hacer para que el contador pare arranca apenas enciendo el pic necesito que encienda con un botón y pare con el mismo y para poner en cero tener apretado el mismo un tiempo, gracias por leer el cogigo

Desconectado CharlesFrances

  • PIC10
  • *
  • Mensajes: 2
Re: Sobre como hacer un contador en CCS Compiler.
« Respuesta #3 en: 05 de Enero de 2015, 01:52:25 »

Desconectado callecuatro1976

  • PIC12
  • **
  • Mensajes: 85
Re: Sobre como hacer un contador en CCS Compiler.
« Respuesta #4 en: 05 de Enero de 2015, 13:21:37 »
quiero usar el código que estoy armando con lcd