查看: 5690|回复: 9

[S12] MC9S12XS128 PIT中断进不去

[复制链接]

该用户从未签到

1

主题

13

帖子

0

新手上路

Rank: 1

积分
49
最后登录
1970-1-1
发表于 2014-8-21 15:49:15 | 显示全部楼层 |阅读模式
 我是按照这个教程编的
123.jpg
 
我知道答案 目前已有9人回答
回复

使用道具 举报

该用户从未签到

1

主题

13

帖子

0

新手上路

Rank: 1

积分
49
最后登录
1970-1-1
 楼主| 发表于 2014-8-21 19:57:51 | 显示全部楼层
复制从论坛上下载的程序也是不能进中断,难道是9s12xs128与9s12xs128mal寄存器有差别?我用的是mal
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

#define uint unsigned int
#define uchar unsigned char

void pit_init(void)
{
  PITCFLMT=0;     //关闭PIT
  PITCE_PCE0=1;        //打开定时器通道0
  PITMUX_PMUX0=0;       //定时通道0使用微计数器0
  PITMTLD0=(80-1);  //设置微计数器0的加载寄存器N
  PITLD0=(50000-1);  //设置16位计数器0的加载寄存器M
                  //定时周期=(N+1)*(M+1)/BusClk=(0x4f+1)*(0xc34f+1)/(16M/2)=0.5s
  PITINTE |= (1<<0); //使能定时通道0的中断
  PITCFLMT=0x80;  //使能PIT
}

/*主函数*/
void main(void)
{
  DDRB=0xff;
  PORTB=0xfe;
  pit_init();
  EnableInterrupts;
  for(;;)
  {
    _FEED_COP(); /* feeds the dog */  
  }
}

void interrupt 66 PIT0(void)
{
  PITCFLMT=0;     //只用一个通道时,关闭PIT,稳定,清超时标志位
  PORTB=~PORTB;   //反转电平
//  PITTF=(1<<0);   //清超时标志位
  PITCFLMT=0x80;  //使能PIT
}
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

13

帖子

0

新手上路

Rank: 1

积分
49
最后登录
1970-1-1
 楼主| 发表于 2014-8-21 20:30:39 | 显示全部楼层
程序是128的,怀疑是中断号问题,不知道怀疑正不正确。用查询PITTF值判断时间到没到是可以运行的。
void main(void)
{
  DDRB=0xff;
  PORTB=0xff;
  pit_init();
  for(;;)
  {
    //查询法
    if(PITTF&0x01)  //检查是否超时
    {
      PORTB=~PORTB; //PB口反转电平
      PITTF=(1<<0); //清超时标志位
    }
    //循环,不必再初始化加载寄存器
    _FEED_COP(); /* feeds the dog */  
  }
}
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

89

帖子

0

中级会员

Rank: 3Rank: 3

积分
378
最后登录
1970-1-1
发表于 2014-8-22 13:44:05 | 显示全部楼层
   //===============PIT0初始化
    PITCFLMT_PITE = 0 ;         // 禁止PIT模块
    PITCE_PCE0 = 0 ;            // 禁止PIT0通道
    PITINTE_PINTE0 = 0 ;        // 禁止PIT0通道中断
    PITMUX_PMUX0 = 0 ;          // PIT0通道和基0复合
    PITMTLD0 = 199 ;            // 基0的初值
    PITLD0 = 4000 - 1 ;         // PIT0通道的初值
    PITTF_PTF0 = 1 ;            // 清PIT0通道中断标志位
    PITINTE_PINTE0 = 1 ;        // 使能PIT0通道中断
    PITCE_PCE0 = 1 ;            // 使能PIT0通道  
    PITCFLMT_PITE = 1 ;         // 使能PIT模块   

开总中断,开PIT中断

interrupt VectorNumber_Vpit0 void PIT0_Interrupt(void)
{
    //write your code
}

VectorNumber_Vpit0 为中断向量 在Mc9s12xs128.h最上边中定义的,不同单片机可能会有差异,不过同为128应该一样,建议楼主按MCU库函数的定义来
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

118

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
1970-1-1
发表于 2014-8-22 14:20:42 | 显示全部楼层
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

13

帖子

0

新手上路

Rank: 1

积分
49
最后登录
1970-1-1
 楼主| 发表于 2014-8-22 17:41:07 | 显示全部楼层
秋秋秋 发表于 2014-8-22 13:44
//===============PIT0初始化
    PITCFLMT_PITE = 0 ;         // 禁止PIT模块
    PITCE_PCE0 = 0 ;   ...

我用的是CodeWarrior5.1,我查过128的VectorNumber_Vpit0是66,里面没有128mal,只有128。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

89

帖子

0

中级会员

Rank: 3Rank: 3

积分
378
最后登录
1970-1-1
发表于 2014-8-22 20:38:30 | 显示全部楼层
XS128和xs128mal 应该是一样的
回复加不了附件,只能另开一贴
https://www.nxpic.org.cn/module/ ... p;extra=#pid2017781
这里是大概的XS128的PIT讲解,以及资料和 CW5.1的小例程
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-8-26 10:42:19 | 显示全部楼层
    应该是没有指定中断位置。下面代码是我用XE系列写的PIT,测试运行正常。
    /*******************************************************************************
    *
    *下面是用于定义中断代码
    *
    *******************************************************************************/
    #pragma CODE_SEG __NEAR_SEG NON_BANKED

    void __interrupt VectorNumber_Vpit0 PIT_IRQHandler(void)
    {
      PITTF_PTF0 = 1;  
    }
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    705

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1745
    最后登录
    1970-1-1
    发表于 2014-9-1 10:48:05 | 显示全部楼层
    是的呢,你的中断函数和你的向量表有没有连接起来呢。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    802

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1763
    最后登录
    1970-1-1
    发表于 2014-9-3 11:01:41 | 显示全部楼层
    如果指定了中断, 再看看连接的问题吧
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 06:37 , Processed in 0.112803 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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