I am working with the M52233 Demo board and was wondering if there is a simple nono_sleep() function or some sort of delay function already implemented to be used with the Freescale CodeWarrior IDE and this board. Or should i make my own?
Solved! Go to Solution.
DMA timers are perfect for sub-microsecond delays. They can be configured as 32-bit naturally overflowing timers running at CPU frequency:
#include "mcf522regs.h"
#define DTIM_NUM 1
void
timer_init(void)
{
DTIM_DTMR(DTIM_NUM) = DTMR_CLK_DIV1 | DTMR_RST;
}
void
timer_delay(unsigned int ticks)
{
unsigned int start, diff;
start = DTIM_DTCN(DTIM_NUM);
do
{
diff = DTIM_DTCN(DTIM_NUM) - start;
}
while (diff <= ticks);
}
Anthony, was this of any help?
Please keep us posted!
Best regards!
DMA timers are perfect for sub-microsecond delays. They can be configured as 32-bit naturally overflowing timers running at CPU frequency:
#include "mcf522regs.h"
#define DTIM_NUM 1
void
timer_init(void)
{
DTIM_DTMR(DTIM_NUM) = DTMR_CLK_DIV1 | DTMR_RST;
}
void
timer_delay(unsigned int ticks)
{
unsigned int start, diff;
start = DTIM_DTCN(DTIM_NUM);
do
{
diff = DTIM_DTCN(DTIM_NUM) - start;
}
while (diff <= ticks);
}