飞思卡尔单片机定时器应用程序示例?

希望是C语言写的,谢谢你们... 希望是C语言写的,谢谢你们 展开
 我来答
意法半导体(中国)投资有限公司 2020-01-15
展开全部
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
匿名用户
2009-08-27
展开全部
// 16位累加器测速程序(PACB累加器),PT0口输入脉冲
//每次记录脉冲时间可修改宏:TIME_INTER
//
///////////////////////////////////////////////////////////////////
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

#define TIME_INTER 1000 //1000个ms=1s
unsigned int Get_pulse;

void Start_PLL(void) //busCLK=32M
{
REFDV=0x01; // PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1)
SYNR=0x03; // =2*16M*3/2=64M
asm{
BRCLR CRGFLG,#$08,*
BSET CLKSEL,#$80
}
}

void PACBInit()
{
TCTL4 = 0X02; //下降沿捕捉脉冲
PBCTL = 0x40; //级联两个8位累加器(PAC0和PAC1)
ICPAR = 0X03; //使能累加器
PACN10 = 0X0000;
}

void MDCInit(void)
{
MCCTL = MCCTL&0Xfb; //模数计数器禁止运行
MCCTL = 0Xe3; //允许中断,模数计数方式
//返回时重新加载所用的常数,分频常数为16
MCCTL = MCCTL|0X04; //模数计数器使能
MCCNT = 2000; //(1/32M)*16*2000= 1ms
MCCTL = MCCTL|0X08 ; //把模数常数寄存器的值加载到模数计数器FLMC;
}

void main(void)
{
DisableInterrupts;
Start_PLL();
PACBInit();
MDCInit();
EnableInterrupts;

for(;;)
{

}
}

#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 26 MDC_ISR(void)
{
static unsigned int number_count;
MCFLG = 0x80;
number_count ++;

if( number_count==TIME_INTER) //1秒取一次
{
number_count=0;
Get_pulse = PACN10;
PACN10 = 0X0000;

}
}
意法半导体(中国)投资有限公司
2020-01-15 广告
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式