找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7643|回复: 17
收起左侧

如何软件触发硬件中断?

  [复制链接]
ID:161214 发表于 2017-2-15 20:29 | 显示全部楼层 |阅读模式
因为需要,本需要写一个51单片机程序,比如我写了个 int0 中断函数,当按键按下时候马上执行,但是程序里面达到一定条件下也必须立刻无条件执行这个函数,我想问的是,如何用软件触发这个中断呢,谢谢!
回复

使用道具 举报

ID:153041 发表于 2017-2-16 11:10 | 显示全部楼层
把中断函数里面的内容单独封装成一个普通函数,进中断函数调用这个函数,主程序也可以调用这个函数。
回复

使用道具 举报

ID:164953 发表于 2017-2-16 16:33 | 显示全部楼层
或许你可以试试直接写入IE0 = 1;试试
回复

使用道具 举报

ID:123289 发表于 2017-2-16 17:52 | 显示全部楼层
沙发正解
回复

使用道具 举报

ID:7485 发表于 2017-2-17 08:43 | 显示全部楼层
直接将中断标志位置“1” 。
TCON
7        6      5      4      3      2       1       0
TFl   TR1  TF0   TR0   IE1   IT1   IE0    IT0
回复

使用道具 举报

ID:111634 发表于 2017-2-17 12:59 | 显示全部楼层
把中断函数里面的内容单独封装成一个普通函数,进中断函数调用这个函数,主程序也可以调用这个函数。
回复

使用道具 举报

ID:57657 发表于 2017-2-19 17:55 | 显示全部楼层
utzuzu 发表于 2017-2-16 11:10
把中断函数里面的内容单独封装成一个普通函数,进中断函数调用这个函数,主程序也可以调用这个函数。

主程序在调用这个函数处理数据的时候一但中断来的再去调用这个函数的话结果您应该懂得了吧。
回复

使用道具 举报

ID:67774 发表于 2017-2-19 18:58 | 显示全部楼层
npn 发表于 2017-2-19 17:55
主程序在调用这个函数处理数据的时候一但中断来的再去调用这个函数的话结果您应该懂得了吧。

其实,如果只要求实现相应功能的话,可以写成两个函数, 一个是中断函数,一个是普通函数,各干个的不就行了。如果两个函数有共同的数据不能错乱,那就在访问前 禁中断就是的。
回复

使用道具 举报

ID:57657 发表于 2017-2-19 22:36 | 显示全部楼层
mostube 发表于 2017-2-19 18:58
其实,如果只要求实现相应功能的话,可以写成两个函数, 一个是中断函数,一个是普通函数,?鞲筛龅牟痪? ...

这和vc vb 易语言等pc编程语言有很大差别,pc上的局部变量地址可通过系统自动分配,就算是多线程大量调用1个函数也很少会产生数据混乱,不同进程和线程的数组以及变量在内存中可能不是连续的,函数返回后所有局部变量包括大数组都会瞬间被释放,如果用在c51平台的话对一个变量分配动态地址的话就需要消耗更长时间和占用更多字节的内存。
回复

使用道具 举报

ID:159271 发表于 2017-2-19 23:19 | 显示全部楼层
学习一下,感谢大家!
回复

使用道具 举报

ID:162242 发表于 2017-2-20 12:31 | 显示全部楼层
我想问的是,如何用软件触发这个中断
回复

使用道具 举报

ID:192554 发表于 2017-4-23 00:53 | 显示全部楼层
感觉直接将IE = 1 ,就可以进入中断了吧。
回复

使用道具 举报

ID:192580 发表于 2017-4-23 09:32 | 显示全部楼层
外部中断模式
回复

使用道具 举报

ID:192595 发表于 2017-4-23 10:30 | 显示全部楼层
ahshmj 发表于 2017-2-17 08:43
直接将中断标志位置“1” 。
TCON
7        6      5      4      3      2       1       0

正解
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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