查看: 3015|回复: 3

[其他] 飞思卡尔中断

[复制链接]

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
16
最后登录
2023-1-17
发表于 2013-12-1 19:18:04 | 显示全部楼层 |阅读模式
各位大神:
   飞思卡尔中断如何执行,DSC8257
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-12-2 09:39:46 | 显示全部楼层

回复:飞思卡尔中断

中断的流程大都是:保护中断,处理中断时间,恢复中断,你的问题不是很明确
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

43

帖子

0

注册会员

Rank: 2

积分
159
最后登录
1970-1-1
发表于 2013-12-19 15:07:05 | 显示全部楼层

RE:飞思卡尔中断

所有的DSC都是标量中断,即每一个中断源都对应一个固定的中断矢量。 首先设定中断的条件:
1)设定中断源的优先级:*((unsigned int *)INTC_IPRx)|=0x00C0;
2)中断源中断Enable, 举个PWM的例子:*((unsigned int *)PWM_SM0INTEN)|=0x1000;
3)写中断函数:
#pragma interrupt on
void PWM_RELOAD_ISR()
{
        //clear the RF flag in PWM_SM0STS
                *((unsigned int *)PWM_SM0STS)|=0x1000; //writting 1 to clear the RF bit       
        if(changeFlag)
        {
                *((unsigned int *)PWM_SM1VAL2)=0xFA00;  //75% duty cycle
                *((unsigned int *)PWM_SM1VAL3)=0x400;
                *((unsigned int *)PWM_SM1VAL4)=0xFA00;  //75% duty cycle
                *((unsigned int *)PWM_SM1VAL5)=0x400;       
。。。
}
4)修改中断矢量表in vector.c:
jsr >FPWM_RELOAD_ISR   ;MC56F824x_5x_ISR_PWM_RELOAD0      ;submodule 0 reload interrupt              0-2  0x68  52
5)开中断
asm(bfclr #$0300,sr);
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

705

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1745
最后登录
1970-1-1
发表于 2014-6-24 16:09:23 | 显示全部楼层

RE:飞思卡尔中断

楼上回复的真仔细。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-10-30 22:41 , Processed in 0.088121 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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