智能车制作

 找回密码
 注册

扫一扫,访问微社区

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

[讨论] mpc5604

[复制链接]

2

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
422
威望
205
贡献
93
兑换币
120
注册时间
2012-11-23
在线时间
62 小时
毕业学校
江汉大学
跳转到指定楼层
1#
发表于 2012-12-16 21:06:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大神,你们是怎么入门mpc5604的?有木有一些源程序可以分享一下

2

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
422
威望
205
贡献
93
兑换币
120
注册时间
2012-11-23
在线时间
62 小时
毕业学校
江汉大学
2#
 楼主| 发表于 2012-12-18 20:29:20 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
53
威望
37
贡献
12
兑换币
12
注册时间
2013-1-24
在线时间
3 小时
毕业学校
骗子工业学校
3#
发表于 2013-1-30 15:09:03 | 只看该作者
QQ:103931388,欢迎交流
#include "MPC5604B_M27V.h"  /* Use proper include file */
//#include "CommType.h"   /* 自定义的各种类型 */
#include "CarSpeed_1.h"
#include "Freq_2.h"
uint16_t Freq_1;
uint16_t Freq_2;
unsigned char FreqCount_1 = 0;
unsigned char FreqCount_2 = 0;
uint16_t Freq_1_Buffer[Freq_Filter_Count_1];
uint16_t Freq_2_Buffer[Freq_Filter_Count_2];
void eMIOS1_CH1617_SAI_ISR(void)
{  
static  uint16_t BeforeCCP_1,BeforeCCP_2;
   uint16_t CCP_1,CCP_2;
   uint16_t TempData1,TempData2;
  
if(EMIOS_1.CH[17].CSR.B.FLAG == 1 || EMIOS_1.CH[17].CSR.B.OVR == 1)
{
  CCP_1 = EMIOS_1.CH[17].CADR.B.CADR;
   
    if(CCP_1 > BeforeCCP_1)//在定时器溢出时的数不管
    {   
     TempData1 = 62500 / (CCP_1 - BeforeCCP_1);//64M 256分频为250K
  
   if(TempData1 > 9)//10Hz以上的频率需要滤波
   {
    if(FreqCount_1 < Freq_Filter_Count_1)
    {
     Freq_1_Buffer[FreqCount_1] = TempData1;//频率先装入缓冲数组
     FreqCount_1++;  //车速度缓冲次数++
    }                                
   }
   else Freq_1 = TempData1; //10Hz以下的频率,直接用了,不用滤波
    }
   
    BeforeCCP_1 = CCP_1;
   
    EMIOS_1.CH[17].CSR.B.FLAG = 1;//清捕捉发生标志
    //EMIOS_1.CH[17].CSR.B.OVR = 1;//清捕捉发生标志
    //EMIOS_1.CH[17].CSR.B.OVFL = 1;//清捕捉发生标志
}

if(EMIOS_1.CH[16].CSR.B.FLAG == 1 || EMIOS_1.CH[16].CSR.B.OVR == 1)
{
  CCP_2 = EMIOS_1.CH[16].CADR.B.CADR;
   
    if(CCP_2 > BeforeCCP_2)//在定时器溢出时的数不管
    {   
     TempData2 = 62500 / (CCP_2 - BeforeCCP_2);//64M 256分频为250K
  
   if(TempData2 > 9)//10Hz以上的频率需要滤波
   {
    if(FreqCount_2 < Freq_Filter_Count_2)
    {
     Freq_2_Buffer[FreqCount_2] = TempData2;//频率先装入缓冲数组
     FreqCount_2++;  //车速度缓冲次数++
    }                                
   }
   else Freq_2 = TempData2; //10Hz以下的频率,直接用了,不用滤波
    }
   
    BeforeCCP_2 = CCP_2;
   
    EMIOS_1.CH[16].CSR.B.FLAG = 1;//清捕捉发生标志
    //EMIOS_1.CH[16].CSR.B.OVR = 1;//清捕捉发生标志
    //EMIOS_1.CH[16].CSR.B.OVFL = 1;//清捕捉发生标志
}
}
//---------------------------------------------初始化工作--------------------------------------------
void init_SAI_Irq15(void) {
  INTC.PSR[165].R = 15;  /* Software interrupt 4 IRQ priority = 2 */
}
void initEMIOS_SAI(void)
{
   EMIOS_1.MCR.B.GPRE= 0xFF;   /* Divide 64 MHz sysclk by 63+1 = 64 for 1MHz eMIOS clk*/
   EMIOS_1.MCR.B.GPREN = 1; /* Enable eMIOS clock */
   EMIOS_1.MCR.B.GTBE = 1;   /* Enable global time base */
   EMIOS_1.MCR.B.FRZ = 0;    /* Enable stopping channels when in debug mode */

//----------------eMIOS_CH16----------------
EMIOS_1.CH[16].CCR.B.UCPEN = 1;  //Prescaler enabled
EMIOS_1.CH[16].CCR.B.UCPRE = 3;  //标准通道内部时钟预分频比:8
EMIOS_1.CH[16].CCR.B.FEN = 1;  //
EMIOS_1.CH[16].CCR.B.EDSEL = 0; //
EMIOS_1.CH[16].CCR.B.DMA = 0; //
   EMIOS_1.CH[16].CCR.B.BSL = 0x03; //使用内部计数器
   EMIOS_1.CH[16].CCR.B.EDPOL = 1; /* 上升沿 Polarity-leading edge sets output/trailing clears*/
   EMIOS_1.CH[16].CCR.B.MODE = 0x02; //模式:单次信号捕捉
SIU.PCR[103].B.IBE = 1;  //将该引脚置为输入模式

//----------------eMIOS_CH17----------------
EMIOS_1.CH[17].CCR.B.UCPEN = 1;  //Prescaler enabled
EMIOS_1.CH[17].CCR.B.UCPRE = 3;  //标准通道内部时钟预分频比:8
EMIOS_1.CH[17].CCR.B.FEN = 1;  //
EMIOS_1.CH[17].CCR.B.EDSEL = 0; //
EMIOS_1.CH[17].CCR.B.DMA = 0; //
   EMIOS_1.CH[17].CCR.B.BSL = 0x01; //使用内部计数器
   EMIOS_1.CH[17].CCR.B.EDPOL = 1; /* 上升沿 Polarity-leading edge sets output/trailing clears*/
   EMIOS_1.CH[17].CCR.B.MODE = 0x02; //模式:单次信号捕捉            
   SIU.PCR[104].B.IBE = 1;  //将该引脚置为输入模式
   //SIU.PCR[104].B.SME = 1;  //将该引脚置为输入模式
}
//---------------------------------------------初始化工作--------------------------------------------
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 03:58 , Processed in 0.122282 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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