Could be the crank sensor. Had the same problem. Replaced the part for 30 bucks, but was a tough fix. It's located behind the engine next to the knock sensor. You can either get at it from under the car, or tilt the engine forward and get at it by lying on the engine.