Reading a tach signal

If the duty cycle is fixed you can just use the pulseIn() function to measure the length of the pulse. From that you can calculate everything else.

http://arduino.cc/en/Reference/PulseIn

#define MICROSECONDS_PER_MINUTE (60UL*1000000UL) 
#define PULSES_PER_REVOLUTION 128 /* You'll have to figure this out */
int rpm(int inputPin) {
    unsigned long pulseLength = pulseIn(inputPin, HIGH);  // Microseconds per pulse
    pulseLength = (pulseLength * 100) / 30;  // Convert from 30% to 100%
    unsigned long pulseRate = MICROSECONDS_PER_MINUTE / pulseLength; // Pulses per minute
    return pulseRate / PULSES_PER_REVOLUTION;
}