高级会员
- 积分
- 523
- 威望
- 292
- 贡献
- 127
- 兑换币
- 171
- 注册时间
- 2013-9-17
- 在线时间
- 52 小时
- 毕业学校
- kashixiaoxue
|
请大家看如下代码!GPT.c
#include "GPT.h"
#include "MCF52259.h"
uint16 maichong_1;
extern pulse_speed1;
//extern i;
void PIT0_init(void)
{
MCF_PIT_PCSR(0)=MCF_PIT_PCSR_RLD
|MCF_PIT_PCSR_PIF
|MCF_PIT_PCSR_PIE
|MCF_PIT_PCSR_OVW
|MCF_PIT_PCSR_PRE(9);//at 80MHz
//(15-610Hz)(14-1220Hz)(13-4882Hz)
//(12-9765Hz)(11-19531Hz)(10-39062Hz)(9-78125Hz)
//|MCF_PIT_PCSR_DBG
//|MCF_PIT_PCSR_DOZE
MCF_PIT_PMR(0)=(uint16)(100*78125/1000);
MCF_INTC0_IMRL&=~MCF_INTC_IMRL_MASKALL;
MCF_INTC0_IMRH&=~MCF_INTC_IMRH_INT_MASK55;//PIT0
MCF_INTC0_ICR55=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT0
MCF_PIT_PCSR(0)|=MCF_PIT_PCSR_EN;
}
///-------------------------------------------------------------------------*
//函数名: GPTPA_Init *
//功 能: 初始化脉冲累加器,下降沿累加 *
//参 数: 无 *
//返 回: 无 *
//说 明: 初始化结束后,定时器计数是禁止的,脉冲累加器中断是禁止的 *
//-------------------------------------------------------------------------*
void GPTPA_Init(void)
{
//1.配置TA.3引脚为GPT功能
MCF_GPIO_PTAPAR |= 0x40;
//2.禁止GPT
DisableGPT();
//3.设置GPT时钟
MCF_GPT_GPTSCR2 |= MCF_GPT_GPTSCR2_PR(6); //频率80000000/2*2^6=625000HZ
//4.设置GPT通道3功能为脉冲累加功能,下降沿累加,关闭脉冲累加中断
MCF_GPT_GPTPACTL = 0x00;
//5.设置脉冲累加中断级别并清屏蔽位
MCF_INTC0_ICR(42) = MCF_INTC_ICR_IL(2)
| MCF_INTC_ICR_IP(3);
MCF_INTC0_IMRH &= ~MCF_INTC_IMRH_INT_MASK42;
MCF_INTC0_IMRL &= ~MCF_INTC_IMRL_MASKALL;
//6.清脉冲累加输入标志
MCF_GPT_GPTPAFLG |= MCF_GPT_GPTPAFLG_PAIF;
//7.清脉冲累加计数器
MCF_GPT_GPTPACNT = 0x0000;
//8.清GPT计数器
MCF_GPT_GPTCNT = 0x0000;
MCF_GPT_GPTPACTL = 0x43;
}
__declspec(interrupt:0) void PIT0_handler(void)//interrupt source 55
{
DisableInterrupts;
MCF_PIT_PCSR(0) |= MCF_PIT_PCSR_PIF;
maichong_1=MCF_GPT_GPTPACNT;
pulse_speed1=(uint16)maichong_1;
MCF_GPT_GPTPACNT=0;
maichong_1=0;
EnableInterrupts;
/*
if(++i%2)
{
MCF_GPIO_PORTTC=0x00;
}
else
MCF_GPIO_PORTTC=0xFF;
*/
}
以上是小弟的测速方法,定时器PIT0确定时间产生中断,然后将所设定时间内的脉冲技术值用5110显示,调试了好久搜没有结果,倘若单独检测PIT0模块,能够进入中断,以上if(++i%2)
{
MCF_GPIO_PORTTC=0x00;
}
else
MCF_GPIO_PORTTC=0xFF;
就是小弟的调试代码,TC0口能够输出矩形波,外设led也能闪亮,所以小弟怀疑是GPT脉冲累加出错,请大家帮忙看一下是哪里出错!小弟在这里表示感激。
|
|