查看: 2250|回复: 5

[已解决] 照着人家的例程写的PIT1中断,不知道错在哪里,死活不进中断。(已解决)

[复制链接]

该用户从未签到

3

主题

11

帖子

0

新手上路

Rank: 1

积分
13
最后登录
1970-1-1
发表于 2014-4-20 17:17:56 | 显示全部楼层 |阅读模式
      求高手指点错误。
main.c
/*
 * main implementation: use this sample to create your own application
 *
 */
#include "support_common.h" /* include peripheral declarations and more */
#if (CONSOLE_IO_SUPPORT || ENABLE_UART_SUPPORT)
/* Standard IO is only possible if Console or UART support is enabled. */
#include
#endif
#include &quotIT1.h"
#define uchar unsigned char
uchar count1=0;
uchar count2=0;
uchar i;
void main(void)
{
PIT1_init;
EnableInterrupts;
PIT1_start(9999);
while(1)
{
   i=count2;
}
 
}
PIT1.c
#include &quotIT1.h"
extern count2;
uchar con_PIT1;
/**********************************PIT1初始化*****************************/
void PIT1_init()
{
  
 MCF_PIT_PCSR(1)=MCF_PIT_PCSR_RLD  
       |MCF_PIT_PCSR_PIF
       |MCF_PIT_PCSR_PIE
       |MCF_PIT_PCSR_OVW
       |MCF_PIT_PCSR_PRE(4);//fPIT=fsys/2/2^PER
              //at 80MHz
            //0- 40000000Hz
            //1- 20000000Hz
            //2- 10000000Hz
            //3- 5000000Hz
            //4- 2500000Hz -0.4us
            //5- 1250000Hz
            //6- 625000Hz
            //7- 312500Hz
            //8- 156250Hz
            //9- 78125Hz   -12.8us
            //10-39062.5Hz _25.6us
            //11-19531.25Hz
            //12-9765.625Hz
            //13-4882.8125Hz
            //14-2441.40625Hz
            //15-1220.703125Hz
       //|MCF_PIT_PCSR_DBG;
       //|MCF_PIT_PCSR_DOZE
      
 MCF_PIT_PMR(1)=9999;
 
 MCF_INTC1_IMRL&=~MCF_INTC_IMRL_MASKALL;
 MCF_INTC1_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1
 
 MCF_INTC1_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
}
/*******************************************************************************************/
void PIT1_start(uint x)
{
 MCF_PIT_PMR(1)=x;
 MCF_PIT_PCSR(1)|=MCF_PIT_PCSR_EN;
}
/********************************************************************************************/
void PIT1_stop(void)
{
 MCF_PIT_PCSR(1)&=~MCF_PIT_PCSR_EN;
}
/********************************************************************************************/
__declspec(interrupt) void PIT1_handler(void)//interrupt source 56
{
 MCF_PIT_PCSR(1)|=MCF_PIT_PCSR_PIF;//清除PIT标志位
if(con_PIT1++==500)
{
con_PIT1=0;
count2++; 
   }
}
中断向量表已改
  asm_exception_handler,           /* 114 (0x___) Reserved                   */
   asm_exception_handler,           /* 115 (0x___) Reserved                   */
   asm_exception_handler,           /* 116 (0x___) Reserved                   */
   asm_exception_handler,           /* 117 (0x___) Reserved                   */
   asm_exception_handler,           /* 118 (0x___) Reserved                   */
   asm_exception_handler,           /* 119 (0x___) Reserved                   */
    PIT1_handler,           /* PIT1                   */
   asm_exception_handler,           /* 121 (0x___) Reserved                   */
   asm_exception_handler,           /* 122 (0x___) Reserved                   */
   asm_exception_handler,           /* 123 (0x___) Reserved                   */
   asm_exception_handler,           /* 124 (0x___) Reserved                   */
错误不知道在哪里,找的例程全部是PIT0的,照着例程改PIT1的,结果进不去,求高手解决。
我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

3

主题

11

帖子

0

新手上路

Rank: 1

积分
13
最后登录
1970-1-1
 楼主| 发表于 2014-4-20 17:38:09 | 显示全部楼层

回复:照着人家的例程写的PIT1中断,不知道错在哪里,死活不进中断。

更正一下

MCF_INTC1_IMRL&=~MCF_INTC_IMRL_MASKALL;
  MCF_INTC1_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1
  
  MCF_INTC1_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
    这个改成

MCF_INTC0_IMRL&=~MCF_INTC_IMRL_MASKALL;
  MCF_INTC0_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1
  
  MCF_INTC0_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
复制的是前几天写的代码,这个问题已发现,不算。
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2014-4-21 09:56:27 | 显示全部楼层

回复:照着人家的例程写的PIT1中断,不知道错在哪里,死活不进中断。

回复第 2 楼 于2014-04-20 17:38:09发表:
更正一下

MCF_INTC1_IMRL&=~MCF_INTC_IMRL_MASKALL;
MCF_INTC1_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1

MCF_INTC1_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
这个改成

MCF_INTC0_IMRL&=~MCF_INTC_IMRL_MASKALL;
MCF_INTC0_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1

MCF_INTC0_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
复制的是前几天写的代码,这个问题已发现,不算。
你好,楼主!
这就是你的问题,目前已解决啊?
 
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

11

帖子

0

新手上路

Rank: 1

积分
13
最后登录
1970-1-1
 楼主| 发表于 2014-4-21 14:31:25 | 显示全部楼层

回复:照着人家的例程写的PIT1中断,不知道错在哪里,死活不进中断。

回复第 3 楼 于2014-04-21 09:56:27发表:
回复第 2 楼 于2014-04-20 17:38:09发表:
更正一下

MCF_INTC1_IMRL&=~MCF_INTC_IMRL_MASKALL;
MCF_INTC1_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1

MCF_INTC1_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
这个改成

MCF_INTC0_IMRL&=~MCF_INTC_IMRL_MASKALL;
MCF_INTC0_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1

MCF_INTC0_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
复制的是前几天写的代码,这个问题已发现,不算。
你好,楼主!
这就是你的问题,目前已解决啊?
不是这个问题。我发的时候这个问题已改了,但是还是进不去中断。
 

 
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
发表于 2014-4-21 15:20:13 | 显示全部楼层

回复:照着人家的例程写的PIT1中断,不知道错在哪里,死活不进中断。

回复第 4 楼 于2014-04-21 14:31:25发表:
回复第 3 楼 于2014-04-21 09:56:27发表:
回复第 2 楼 于2014-04-20 17:38:09发表:
更正一下

MCF_INTC1_IMRL&=~MCF_INTC_IMRL_MASKALL;
MCF_INTC1_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1

MCF_INTC1_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
这个改成

MCF_INTC0_IMRL&=~MCF_INTC_IMRL_MASKALL;
MCF_INTC0_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1

MCF_INTC0_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
复制的是前几天写的代码,这个问题已发现,不算。
你好,楼主!
这就是你的问题,目前已解决啊?
不是这个问题。我发的时候这个问题已改了,但是还是进不去中断。
 
请参考附件中的PIT中断例程。
祝顺利。

 

 

PIT_timer_interrupt.zip

332.86 KB, 下载次数: 19

回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

11

帖子

0

新手上路

Rank: 1

积分
13
最后登录
1970-1-1
 楼主| 发表于 2014-4-22 13:55:14 | 显示全部楼层

回复:照着人家的例程写的PIT1中断,不知道错在哪里,死活不进中断。

回复第 5 楼 于2014-04-21 15:20:13发表:
回复第 4 楼 于2014-04-21 14:31:25发表:
回复第 3 楼 于2014-04-21 09:56:27发表:
回复第 2 楼 于2014-04-20 17:38:09发表:
更正一下

MCF_INTC1_IMRL&=~MCF_INTC_IMRL_MASKALL;
MCF_INTC1_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1

MCF_INTC1_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
这个改成

MCF_INTC0_IMRL&=~MCF_INTC_IMRL_MASKALL;
MCF_INTC0_IMRH&=~MCF_INTC_IMRH_INT_MASK56;//PIT1

MCF_INTC0_ICR56=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(2);//PIT1
复制的是前几天写的代码,这个问题已发现,不算。
你好,楼主!
这就是你的问题,目前已解决啊?
不是这个问题。我发的时候这个问题已改了,但是还是进不去中断。
 
请参考附件中的PIT中断例程。
祝顺利。

 

 

 

谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-19 09:01 , Processed in 0.098144 second(s), 27 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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