Arduino Pro and Anemometer (Reading Pulse Times)

So this is the data that I am getting now. (code is posted below)

Count: 0
Speed: 0
DirectionCount: 0
Speed Time: 0
Direction Time: 0
Time Difference: 0
DirectionTimePeriod: 0
Speed: 4294967295
Direction: 4294967295
Time: 2861

Count: 3
Speed: 820
DirectionCount: 3
Speed2: 11790
Speed Time: 11632
Direction Time: 11790
Time Difference: 158
DirectionTimePeriod: 820
Speed: 1312478
Direction: 69
Time: 12382

Count: 2
Speed: 821
DirectionCount: 3
Speed2: 14252
Speed Time: 14094
Direction Time: 14252
Time Difference: 158
DirectionTimePeriod: 821
Speed: 1310880
Direction: 69
Time: 14843

For some reason my direction is always 69 +/- 1 no matter the direction the wind vein points.

I'm calculating speed and direction value using

Speedvalue = (14923600000/SpeedDuration);
---where 1492 is some arbitrary distance and 3600000 is to convert to hours from miliseconds
Directionvalue = 360
TimeDifference/DirectionTimePeriod;
---I decided to divide by the period of my direction signal rather than multiply by the frequency, because I would end up getting zero because of the scaling.

I'm checking the math using the tables and they match up to be 69-ish. I guess this leads to the idea that I'm not reading the rising pulses correctly. Any thoughts?

Here is my code for now:

//////////////////////////////////////////////////////////
// Declaration of Variables //
//////////////////////////////////////////////////////////

int analogSpeed = 0; //Speed bus connected to analog pin 0
int analogDirection = 1; //Direction bus connected to analog pin 1
unsigned long Speedvalue = 0;
unsigned long Directionvalue = 0;

// Variables for time
unsigned long SpeedDuration;
unsigned long DirectionDuration;
unsigned long SpeedTimePrevious;
unsigned long DirectionTimePrevious;
unsigned long DirectionTimePrevious1;
unsigned long DirectionTimePeriod;
unsigned long TimeDifference;
unsigned long Frequency;

// Variables for counting
volatile byte count;
volatile byte directioncount;

void setup()
{
//pinMode (analogSpeed, INPUT);
//pinMode (analogDirection, INPUT);
Serial.begin(2400); // Setup serial with baud rate
attachInterrupt(0, arduino_anemometer, RISING);
attachInterrupt(1, arduino_direction, RISING);

count = 0;
directioncount=0;
SpeedDuration = 0;
DirectionDuration = 0;
SpeedTimePrevious = 0;
DirectionTimePrevious = 0;
DirectionTimePrevious1 = 0;

TimeDifference = 0;
}

void loop()
{
///////////////////////////////////////////////////////////////////////////////////////////
// It takes about 100 microseconds to read an analog input //
// Max reading rate is 10,000 times a second //
/////////////////////////////////////////////e////////////////////////////////////////////

//DO I WANT DIGITAL OR ANALOG READ?!

Speedvalue = digitalRead(analogSpeed); // Read the input pin at 0
Directionvalue = digitalRead(analogDirection); // Read the input pin at 1

Serial.print("Count: ");
Serial.println(count, DEC);

if (count >= 1)
{
//Calculating Speed Duration
SpeedDuration = (millis() - SpeedTimePrevious);
SpeedTimePrevious = millis();
count = 0;

}

Serial.print("Speed: ");
Serial.println(SpeedDuration, DEC);
Serial.println(SpeedTimePrevious, DEC);

Serial.print("DirectionCount: ");
Serial.println(directioncount, DEC);

if ((SpeedTimePrevious > DirectionTimePrevious) && (directioncount >= 1))
{
DirectionDuration = (millis() - DirectionTimePrevious);
DirectionTimePrevious = millis();
DirectionTimePeriod = (DirectionTimePrevious - DirectionTimePrevious1);
directioncount = 0;

Serial.print("Speed2: ");
Serial.println(DirectionTimePrevious, DEC);

// Calculates Frequency between DIRECTION signals
DirectionTimePrevious1 = DirectionTimePrevious;
Frequency = 1/DirectionTimePeriod;
}

// Calculates time difference between SPEED and DIRECTION signals
if (DirectionTimePrevious != 0 ) // Ensures that Direction must occur second
{
TimeDifference = (DirectionTimePrevious - SpeedTimePrevious);
}
Serial.print("Speed Time: ");
Serial.println(SpeedTimePrevious, DEC);
Serial.print("Direction Time: ");
Serial.println(DirectionTimePrevious, DEC);
Serial.print("Time Difference: ");
Serial.println(TimeDifference, DEC);
Serial.print("DirectionTimePeriod: ");
Serial.println(DirectionTimePeriod, DEC);

//////////////////////////////////
// VALUES //
/////////////////////////////////
Speedvalue = (14923600000/SpeedDuration); // Finds speed of cup rotation in
Directionvalue = 360
TimeDifference/DirectionTimePeriod; //Finds Angle of Wind Vein

/////////////////////////////////////////////////////////////////////////////
// Printing SPEED, DIRECTION, TIME //
/////////////////////////////////////////////////////////////////////////////
Serial.print("Speed: ");
Serial.println(Speedvalue, DEC);
Serial.print("Direction: ");
Serial.println(Directionvalue, DEC);
Serial.print("Time: ");
Serial.println(millis());

}

void arduino_anemometer()
{
count++;
}

void arduino_direction()
{
directioncount++;
}