P0128 This code is flagging the cooling system. It is stating the thermostat is sticking open preventing the cooling system from reaching operating temperature even though the engine has ran long enough to reach operating temperature.
P0340 is for the camshaft position sensor. Most likely the sensor is at fault but could be wiring from the vehicle's computer to the sensor (three wires running to the camshaft position sensor).
P0447 is for the charcoal canister vent solenoid. Either the wiring to the vent solenoid is faulty or the vent solenoid is not functioning. The emission system is sealed to check for any leaks so if this valve is not sealing then vehicle's computer is flagging that it has detected the vent valve is not functioning.
The camshaft code would cause the symptoms your having. Having the P0340 corrected first before all others should help make the engine to run better.
Thanks for the question
SPONSORED LINKS
Monday, May 19th, 2014 AT 7:43 AM