查看: 5334|回复: 5

MC9S08DZ60的中断优先级问题

[复制链接]

该用户从未签到

6

主题

21

帖子

0

新手上路

Rank: 1

积分
45
最后登录
1970-1-1
发表于 2011-7-21 20:42:08 | 显示全部楼层 |阅读模式
各位请教一下:最近用MC9S08DZ60编写了个小程序:利用TPM1产生边缘对齐的PWM信号,按键通过中断来改变PWM信号的占空比,调试时发现,有时按动按键,占空比不变化。查了datasheet发现可能是TPM1的中断优先级高于PORT口中断优先级的问题,估计是按键中断子程序没执行完就跳出了。各位指教一下:怎么办?要在按键中断子程序开始关中断吗?小妹是菜鸟,各位多帮忙哈。
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-7-22 09:04:47 | 显示全部楼层

    RE:MC9S08DZ60的中断优先级问题

    你可以先把TPM1关闭,只开启按键中断,然后看看中断到底进去没有。我认为还是没有进入按键中断。
    该会员没有填写今日想说内容.

    该用户从未签到

    6

    主题

    21

    帖子

    0

    新手上路

    Rank: 1

    积分
    45
    最后登录
    1970-1-1
     楼主| 发表于 2011-7-22 09:28:59 | 显示全部楼层

    回复:MC9S08DZ60的中断优先级问题

    按键中断没问题的,应该进得去。大多数情况下,按动按键占空比是变化的,只是有时会不起作用。
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-7-22 11:22:48 | 显示全部楼层

    RE:MC9S08DZ60的中断优先级问题

    能不能看看你的代码?光说问题,我也不知道你代码是不是有问题。
    该会员没有填写今日想说内容.

    该用户从未签到

    6

    主题

    21

    帖子

    0

    新手上路

    Rank: 1

    积分
    45
    最后登录
    1970-1-1
     楼主| 发表于 2011-7-22 16:57:39 | 显示全部楼层

    RE:MC9S08DZ60的中断优先级问题

    /*------------------------------------------------------------------------------------------------------*/
    /*                             该程序由定时器脉冲宽度调节器TPM来完成                                    */
    /*                 利用TPM1CH0的边缘对齐或中央对齐PWM功能,产生一定占空比的脉冲信号                     */
    /*                              微控制器采用的是MC9S08DZ60                                              */
    /*                                     晶振频率4MHz                                                     */
    /*                             注意:1 LED灯只是为了显示中断的次数                                      */
    /*                                   2 TPM通道对应的是PORTD                                             */
    /*                                   3 按键S1、S2控制占空比的大小,按动1次S1,占空比增大10%             */
    /*                                     按动一次S2,占空比减少10%                                        */      
    /*                                  4 按键中断和PWM中断的优先级问题,飞思卡尔单片机的中断优先级是固定    */
    /*                                     的,中断向量表越靠后的中断优先级越高                             */              
    /*         TPM1中断优先级高于按键中断,为了防止案件中断子程序被破坏,可在按键中断子程序开始时关闭中断    */
    /*         TPM1通道用作边缘/ 中央对齐PWM通道而占空比为0%或100%,不会产生匹配中断。                      */
    /*------------------------------------------------------------------------------------------------------*/
    #include  /* for EnableInterrupts macro */
    #include "derivative.h" /* include peripheral declarations */
    #define LED PTCD_PTCD0
    #define UP  PTBD_PTBD4
    #define DOWN PTBD_PTBD5
    /////////////////////////////////////////////////////////////////////////////////////////
    //延时函数
    /////////////////////////////////////////////////////////////////////////////////////////
    void delay0(unsigned int i)
      {
        unsigned char h;
        while(--i)
        for(h=0;h=0x7a12)
        TPM1C0V=0x7a12;} //31250*10%=0c35
        if(PTBD_PTBD5==0){ //按键消抖  
        TPM1C0V=TPM1C0V-0x0c35;
        if(TPM1C0V

    该用户从未签到

    6

    主题

    21

    帖子

    0

    新手上路

    Rank: 1

    积分
    45
    最后登录
    1970-1-1
     楼主| 发表于 2011-7-22 16:59:32 | 显示全部楼层

    RE:MC9S08DZ60的中断优先级问题

    附上源代码,看着有点乱哈,
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-3 23:36 , Processed in 0.091250 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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