The accurate way is to have the Hall sensor trigger an interrupt, and measure the time interval between interrupts. Something like this:
volatile unsigned long lastInterruptTime;
volatile unsigned long interval;
void isr()
{
unsigned long now = micros();
interval = now - lastInterruptTime;
lastInterruptTime =now;
}
The in loop() you calculate the rpm from 'interval'.
Please use the # tool when posting code.