智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3162|回复: 4
打印 上一主题 下一主题

MPC5604的中断怎么进不去,不打角度,求大神指导,非常谢谢,如有必要加QQ348486779

[复制链接]

2

主题

2

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
威望
209
贡献
118
兑换币
120
注册时间
2013-3-4
在线时间
28 小时
毕业学校
安徽建筑工业学院
跳转到指定楼层
1#
发表于 2013-5-11 18:15:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
/***********************************加载头文件***************************************/
#include "MPC5604B_M27V.h"
#include "sysclk_init.h"     //加载系统时钟模块头文件
#include "EMIOS_PWM.h"
#include "EMIOS_SAIC.h"
#include "siu_init.h"
#include "IntcInterrupts.h"      //加载SIUL模块头文件
volatile uint32_t GPIO;
#define uchar unsigned char
#define uint unsigned int
  unsigned g_fCarSpeed;
/**********************************函数声明*******************************************/
void Delay(unsigned int loop_times);            //延时子程序
void System_Int(void);
void EMIOS0_4_INTC(void);
void EMIOS0_4ISR(void);
                     
void angle(unsigned int x)
{        
          EMIOS_0.CH[7].CCR.B.FREN = 1;
                  EMIOS_0.CH[7].CBDR.R = x;
                  EMIOS_0.CH[7].CCR.B.FREN = 0;               
}
void dianji(unsigned int y)
{
           EMIOS_1.CH[21].CBDR.R =y;
}

void EMIOS0_4ISR(void)
{
   EMIOS_0.CH[4].CSR.B.FLAG = 1;         //清除中断标志
   //PIT.CH[0].TCTRL.B.TIE  = 0x0 ;

                   if(PIC_PC8)
         angle(1620);
                  
         else  if(PIC_PC9)
         angle(1580);
         
             else        if( PIC_PC11)
                angle(1500);
               
                else if( PIC_PC13)
                 angle(1470);
                          
         else if(PIC_PC15)
                   angle(1400);
         
                 else  if(PIC_PC10)
       angle(1380);
          //PIT.CH[0].TCTRL.B.TIE  = 0x1 ;  
   //EnableInterrupts;                      //打开中断
}



//************主程序************//

void main(void)
{
   DisableInterrupts;


        sysclk_module_init_fnc();           //系统时钟初始化,选择由PLL产生的64MHz系统频率
       
        siu_init_fnc();                                    //SIUL模块初始化,包括GPIO设置      
        System_Int();
        initEMIOS_0();
        initEMIOS_1();
    initEMIOS_0ch06();
     //initEMIOS_0ch76();
     initEMIOS_0ch04();
    initEMIOS_1ch07();
    dianji(32);
    //Delay(5000);
   //        dianji(20);       
  
   angle(1570);
   Delay(1000);
   angle(1440);
   Delay(1000);
   EMIOS0_4_INTC();
   EnableInterrupts;
   

/* for(;;)
                  
  {         if(POFH==0x30)
                        g_fCarSpeed        =20;
                else if(POFH==0x31)
                    g_fCarSpeed=30;
                else if(POFH==0x33)
                    g_fCarSpeed=40;
         
  }*/
         
}


void EMIOS0_4_INTC(void)
{
        INTC_InstallINTCInterruptHandler(EMIOS0_4ISR,143,1);
        INTC.CPR.R=0;
          
}

               
  
         



/******************函数实现***********************/


/****************************************
函数:void delay(void)
功能:延时
说明:延时500*loop_times个机器周期
****************************************/
void Delay(unsigned int loop_times)
{
    unsigned int loop_i,loop_j;
   
    for (loop_i=0; loop_i< loop_times; loop_i++)
    {
        for (loop_j=0; loop_j<800;loop_j++)
        {
            ;
        }
    }
}

/**************************************************************************************
函数名称:   void System_Int(void)
函数功能:   实现核心板上LED闪烁两次
调用函数:   Delay(unsigned int loop_times);-------- main.c文件中
入口参数:   无
出口参数:   无
返回值:     无
其他:         
**************************************************************************************/
void System_Int(void)
{
  /***************************PF4~PF7设置为输出************************************/
   SIU.PCR[84].R = 0x0201;
   SIU.PCR[85].R = 0x0201;
   SIU.PCR[86].R = 0x0201;
   SIU.PCR[34].R = 0x0101;
   SIU.PCR[87].R = 0x0201;
   SIU.PCR[35].R = 0x0101;
   SIU.PCR[36].R = 0x0101;
   SIU.PCR[37].R = 0x0101;
   SIU.PCR[38].R = 0x0101;
   SIU.PCR[39].R = 0x0101;
   SIU.PCR[40].R = 0x0101;
   SIU.PCR[41].R = 0x0101;
   SIU.PCR[42].R = 0x0101;
   SIU.PCR[43].R = 0x0101;
   SIU.PCR[47].R = 0x0101;
   SIU.PCR[45].R = 0x0101;
  /*********************************************************************************/
/*  POFL = 0xF0;
  Delay(1000);
  POFL = 0xFF;
  Delay(1000);
  POFL = 0xF0;
  Delay(1000);
  POFL = 0xFF;*/       
}









                

1

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
威望
151
贡献
90
兑换币
95
注册时间
2013-6-15
在线时间
13 小时
5#
发表于 2014-5-26 10:02:32 | 只看该作者
在中断向量文件有没有声明中断函数
回复 支持 反对

使用道具 举报

5

主题

11

帖子

0

精华

注册会员

Rank: 2

积分
103
威望
71
贡献
32
兑换币
36
注册时间
2013-4-20
在线时间
0 小时
毕业学校
hekeda
4#
发表于 2013-9-30 14:04:47 | 只看该作者
不知道楼主的问题解决没有?我现在遇到同样的问题,调用INTC_InstallINTCInterruptHandler(EMIOS0_4ISR,143,1);还需其他的配置吗?
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

高级会员

Rank: 4

积分
615
威望
364
贡献
157
兑换币
66
注册时间
2012-3-17
在线时间
47 小时
毕业学校
山东理工
3#
发表于 2013-5-13 22:39:52 | 只看该作者
同求啊。。。qq864240607
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

高级会员

Rank: 4

积分
615
威望
364
贡献
157
兑换币
66
注册时间
2012-3-17
在线时间
47 小时
毕业学校
山东理工
2#
发表于 2013-5-13 22:38:41 | 只看该作者
我的中断也进不去,我的是输入捕捉中断。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 02:31 , Processed in 0.063411 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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