lvalue required as left operand of assignment

can anyone tell me whats wrong with my code?

Does your code REALLY look like that?

if(digitalRead(input)=0)

Have you not learned the difference between = and ==? If not, it's time you did.

if((Start + 250) < Start)

For what value(s) of Start could this ever be true?

state1 != state1;

This is a (useless) test, not an assignment. The ! is in the wrong place.