Thanks...
Compiled and worked (not I was expected), but thereīs my fault.
Before interrupts, with a 25Hz signal Iīve read a 1500 rpm.
Now, with led blinking, Iīve read is 120~180.
The code
Code:'**************************************************************** '* Name : UNTITLED.BAS * '* Author : Mauro Perides * '* Notice : Copyright (c) 2008 Mauro Perides * '* : All Rights Reserved * '* Date : 25/11/2008 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** '@ device pic16F887, HS_OSC, WDT_OFF, LVP_OFF INCLUDE "DT_INTS-14.bas" ' Base Interrupt System INCLUDE "ReEnterPBP.bas" ' Include if using PBP interrupts 'Define MHZ Crystal DEFINE OSC 20 ' Set LCD DEFINE LCD_DREG PORTB ' Set starting Data bit (0 or 4) if 4-bit bus DEFINE LCD_DBIT 0 ' Set LCD Register Select port DEFINE LCD_RSREG PORTB ' Set LCD Register Select bit DEFINE LCD_RSBIT 4 ' Set LCD Enable port DEFINE LCD_EREG PORTB ' Set LCD Enable bit DEFINE LCD_EBIT 5 ' Set LCD bus size (4 or 8 bits) DEFINE LCD_BITS 4 ' Set number of lines on LCD DEFINE LCD_LINES 2 ' Set command delay time in us DEFINE LCD_COMMANDUS 2000 ' Set data delay time in us 'DEFINE LCD_DATAUS 50 SYMBOL LED1 = portd.1 symbol rpmIn = portd.0 rpm VAR word ASM INT_LIST macro ; IntSource, Label, Type, ResetFlag? INT_Handler TMR1_INT, _ToggleLED1, PBP, yes endm INT_CREATE ; Creates the interrupt processor ENDASM T1CON = $31 ; Prescaler = 8, TMR1ON @ INT_ENABLE TMR1_INT ; enable Timer 1 interrupts :main CM1CON0 = 0 ' Comparators off (Do I need these?) CM2CON0 = 0 ' Comparators off 'ANSEL = 0 ANSELH = 0 ' Configure other AN pins as digital I/O output PORTB INPUT PORTD.0 PORTC = 0 TRISC = 0 LCDOUT $FE, 1, " prdTURBO " LCDOUT $FE, $C0, " FUEL COMPUTER " pause 2000 LCDOUT $FE, 1 while 1=1 COUNT rpmIn, 100, rpm LCDOUT $FE,1, "PULS/S ", DEC(RPM) LCDOUT $FE, $C0, "RPM ", DEC(rpm)*60 wend '---[TMR1 - interrupt handler]-------------------------------------------------- ToggleLED1: TOGGLE LED1 @ INT_RETURN
Bookmarks