In reply to sharvil111:
Also, the clock toggling should be done using ~ (tilde) operator. The ! (negation) operator is boolean negation, while ~ (tilde) is bitwise negation.
There is no difference between the two operators when dealing with a single bit.