Copy Rotation Constraint not rotating completely

Hi there.
I’m new to animating using constraints and am currently trying to create a piston of an engine. The stage I’m at is getting the camshaft to rotate properly.
It needs to rotate at about a quarter of the speed of the crank and so I tried using a copy rotation constraint and put the influence at 0.25, but when the crank hit 180 degrees, the camshaft flicked to the other side.
I looked around and found out I should use the transformation constraint. Using this I would have to animate the camshaft and cause the crank to go 4x the speed, but when I tried this, the crank did 360 degrees, then stopped until the camshaft finished doing 360 before going again?

How can I make this work in the way I would like it to?
Thanks to any responses

I think you’ll have better success using drivers in this situation.

I think you may have better success using a driver for this action