To be honest, I wouldn't use a timer at all.
Instead, I would set up the code on a BackgroundWorker thread instead, and call Thread.Sleep to pause between runs:
BackgroundWorker work = new BackgroundWorker();
work.DoWork += new DoWorkEventHandler(work_DoWork);
work.RunWorkerAsync();
...
void work_DoWork(object sender, DoWorkEventArgs e)
{
while (true)
{
RunYourCodeHere();
System.Threading.Thread.Sleep(5 * 60 * 1000);
}
}