> I got it to work by removing the variable name and just using micros() instead of timer.
That's because 'timer' should have been an unsigned long instead of int.
> can micros() be used in certain sections of the program to see how long it takes for a certain loop to execute?
When you want to start timing you say:
unsigned long startTime = micros();
Then you are done timing you say:
unsigned long endTime = micros();
You can then use the time difference (endTime-startTime) to calculate how many microseconds between the start and end.
> Also is there a way to get micros() to pause?
No. If you want to skip some of the time you just measure it and subtract it.