智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2039|回复: 2
打印 上一主题 下一主题

使用MCF52259芯片做编码器测速遇到问题!请大家指点

[复制链接]

4

主题

22

帖子

0

精华

高级会员

Rank: 4

积分
523
威望
292
贡献
127
兑换币
171
注册时间
2013-9-17
在线时间
52 小时
毕业学校
kashixiaoxue
跳转到指定楼层
1#
发表于 2014-3-4 20:49:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请大家看如下代码!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脉冲累加出错,请大家帮忙看一下是哪里出错!小弟在这里表示感激。





回复

使用道具 举报

5

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
486
威望
233
贡献
105
兑换币
137
注册时间
2014-1-10
在线时间
74 小时
毕业学校
河南科技大学
2#
发表于 2014-4-8 22:05:46 | 只看该作者
__declspec(interrupt:0) void PIT0_handler(void)//interrupt source 55这是个中断函数么,52259的中断都有那些那,中断函数如何定义的,对于不同的触发中断是怎么样进入中断函数的。。。
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
592
威望
302
贡献
170
兑换币
181
注册时间
2013-11-14
在线时间
60 小时
毕业学校
黄石学院
3#
发表于 2014-6-11 23:45:58 | 只看该作者
请问你的问题解决没?我也遇到类似问题,求帮助
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 12:34 , Processed in 0.051803 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表