> 0.5秒をカウントする状態変数が必要になる

必要なのは状態変数だね。
状態を持った関数とは言わなかったね。