M52233 functions

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

M52233 functions

跳至解决方案
1,138 次查看
anthonyrios
Contributor I

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?

标签 (1)
1 解答
1,037 次查看
scifi
Senior Contributor I

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);

}

在原帖中查看解决方案

2 回复数
1,037 次查看
Monica
Senior Contributor III

Anthony, was this of any help?

Please keep us posted!

Best regards!

0 项奖励
回复
1,038 次查看
scifi
Senior Contributor I

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);

}