Ayuda con tacómetro(funciona en isis pero no en le protoboard)

Hola estoy haciendo un tacometro pic16f628a, lcd16x2 este es el codigo
Código:
//El registro OPTION_REG tiene todos sus bits en 1 después del
//encendido por lo tanto el Timer0 actúa como contador,
//incrementa en transición descendente y el prescaler
//está asignado al WDT.
//Declaración de las 12 variables necesarias para la conexión
//del módulo LCD.
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB6_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB6_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// Fin de declaración de variables de conexión.

char texto1[7], texto2[7], numflancos=0;
int rpm, rads;

void main(){
porta=0x00;
CMCON=0x07;  //Pines RA<3:0> como E/S digital.
Lcd_Init();                //Inicializa el LCD.
Lcd_Cmd(_LCD_CLEAR);       //Borra el display.
Lcd_Cmd(_LCD_CURSOR_OFF);  //Apaga el cursor.
Lcd_Out(1,1,"  Motor RPM");
Lcd_Out(2,1,"Wmax=900 rpm");
Delay_ms(3000);
Lcd_Cmd(_LCD_CLEAR);       //Borra el display.
while (1)
{
 TMR0=0;                   //Inicializa el registro TMR0.
 Delay_1sec();             //Cuenta durante 1 segundo.
 numflancos=TMR0;          //numflancos=velocidad en rps.
 rpm=60*numflancos;        //Transformación a rpm.
 rads=6.28*numflancos;     //Transformación a rad/s.
 IntToStr(rpm,texto1);     //Transformación de rpm a texto.
 Lcd_Out(1,1,"W[rpm]=");
 Lcd_Out(1,10,texto1);
 IntToStr(rads,texto2);    //Tramsformación de rads a texto.
 Lcd_Out(2,1,"W[rad/s]=");
 Lcd_Out(2,10,texto2);
 Delay_ms(1000);           //Espera para la nueva medición.
}
}
imagenes de la simulacion en isis, en el protoboard no funciona.



si encuentran un error seria de mucha ayuda para saber donde esta mal
el programa esta hecho en mikroc
 
Última edición:
Atrás
Arriba