Let me point out some strange code of yours:
int timer3 = timer * 2;
int timer2 = timer - timer3;
So timer2 = timer - (timer * 2) = -timer; Why the complicated mathematics and not just writing simply as
int timer2 = -timer;
Also, you could come up with better names than just appending a number after the variables as there's not much meaning what's the purpose between the variants (e.g. timer, timer1, timer2, timer3, etc).
cout << "Stop, timer finished";
while (timer2 == 0);
So the loop starts by printing to the standard output (std::cout) then exiting (return) from the main() function and by this, the whole program. After this, you check if the timer2 is 0 and if it is true, you keep repeating your loop.
Since you exit from the whole program, you'll never really have a loop. If you'd remove the return statement, then you would have an infinite loop as timer2 does not change and will never get to be 0
Not a timer
There is no timer here really, not in a classical meaning anyway (seconds or milliseconds).
I have never seen the keyword not being used in C++ before. I wasn't even aware it exists. The regular not operator is the exclamation mark (!), e.g.:
while (timer2 != 0);