Wenn das 1:1 die SOurce ist, dann hast du einen Hund drin.
case 2:
time3 = P3_DATA;
if (time3 == 0)
break;
case 3:

! Break ist nur, wenn time3 == 0 !!