c语言的中断如何实现?楼主指怎么用c语言写中断函数的是interrupt吗怎么用c语言写中断函数?
如果是怎么用c语言写中断函数的话一般定义中断函数如下
void interrupt ISR(void)
{
......
}
有怎么用c语言写中断函数的单片机有中断入口地址的.比如地址是0x1A
void ISR(void) interrupt 0x1A
{
....
}
C语言中是怎么实现中断的?能提供点资料或举几个例子更好……中断大概是这样的 。。。如果有点错误不要怪我 。。。我以前作过鼠标中断的东西 。。现在有些想不起来了 。。。所以 。。。呵呵呵 。。。
当程序运行到中断条件的时候 , 会向CPU发信号改变优先级(原先运行的东西会放进哪个特定的地方的,作保存),以发出中断的那段程序作为最高优先,执行完成后再由执行另外的 。。。建议你去看看汇编 。。。哈哈哈 。。。我没学过的 。。。
C中实现中断是用了一个函数:geninterrupt(...)
这个“...”是个16进制的数字,是中断号,像鼠标中断号就是0x33
还要用到类似汇编里寄存器模样的变量:如_AX,_BX,_CX,_DX...不同的值功能不同 。。。哎呀,我都忘完了 。。。建议去查下geninterrupt()的用法就OK了 。。。
怎样用C语言编写一个DOS下的中断服务程序DOS中断中断属于汇编层面的内容,可以用asm内联实现:
在windows visual c下用__asm关键字 。
在gcc下用__asm__宏即可 。
示例(vc):
#include stdio.h
int main()
{
__asm int 3h;
return 0;
}
这样就可以在C里面写入汇编代码了 。
__asm 关键字用于调用内联汇编程序,并且可在 C 或 C语句合法时出现 。它不能单独出现 。必须后跟汇编指令、一组在大括号中的命令、或者至少一对空大括号 。术语 “__asm 块”在此处指任何命令或命令组,不管是否在大括号内 。
如果不与大括号一起使用,则 __asm 关键字表示此行的其余部分是一条汇编语言语句 。如果与大括号一起使用,则该关键字表示大括号之间的每一行都是一条汇编语言语句 。为了与早期版本兼容 , _asm 是 __asm 的同义词 。
由于 __asm 关键字是语句分隔符 , 因此您可以将程序集指令放在同一行中 。
在 Visual C2005 之前 , 指令
__asm int 3
不会导致在使用 /clr 编译时生成本机代码;编译器会将该指令转换为 CLR 中断指令 。
__asm int 3 现在将导致为函数生成本机代码 。如果您希望函数导致代码中出现断点,还希望将函数编译为 MSIL,请使用 __debugbreak 。
如何用c语言编写一个可中断的程序驻留程序
通俗点讲
就是
程序运行完了,
还要保留
临时数据
和
运行状态 ,
等下一次
调用时
继续
执行
和普通程序的
区别:
普通程序(如一个
子函数)
调用完了
,
临时数据
就
不需要了,
分配的
内存
空间
就
回收了,
而
驻留程序
是
要保留这些的
驻留
程序
主要
用于
中断函数
,
非中断函数
也
有应用,较少 。分别举个例子:
1)用于
中断:
假设
一个
用
定时器
做的
时钟函数,定时器
设置为
1s一个中断 。
main()
{
显示
时间
hour,min,sec;
//
循环
刷屏显示
}
中断函数
{
sec;
if(sec=60)
{
sec=0;
min;
}
if(min=60)
{
min=0;
hour;
}
if(hour=24)
{
hour=0;
}
}
这时候
就能看出,
中断程序
在
运行完的
时候
不能
把
3个
变量
清空,
因为
下次
中断
还要用到
上次的
值,
这个程序
要
一直
驻留
内存;
2)再来个
普通
函数的
假设
做了一个程序
,程序中
有一个
函数aa,而
函数
aa
我只能
让它执行
3次就得
关闭程序(这个
用在
密码
验证上)
aa()
{
密码验证次数n 1
返回n
和
验证结果
}
那这个
aa函数
在
密码
验证
阶段
就要
常驻
内存
c语言怎么编写单片机的中断标准c语言没有中断调用机制怎么用c语言写中断函数,但是不同编译器都有相应怎么用c语言写中断函数的中断处理方式,可以使用户实现中断功能 。
解决方案怎么用c语言写中断函数:
1、采取轮询怎么用c语言写中断函数的方式解决,就是每10毫秒检查一下是否有键盘请求 , 总的来说,这样基本上可以解决问题,而且简单易行,但每10毫秒都要检查,系统消耗太大 。
2、采取中断的方式:
(1)用高级语言调用中断来处理问题 。中断是cpu响应一个中断外围设备8259A的一个过程,当键盘敲击,cpu保存断点暂停执行并且跳到相应的中断处理程序继续执行,结束后根据断点再跳回来 。通过这种方式可以轻松 愉快地解决这个问题 。但是需要用到高级语言调用汇编,根据编译器的不同而有所差别 。
(2)自己模拟中断 。可以另外建立一个线程专门响应键盘的敲击,如果有敲击则打断主线程 。这样做实现起来很复杂 , 而且涉及到不少复杂的关键技术,比如信号量之类的东西 。
3、强大的vc
vc采取怎么用c语言写中断函数了消息映射的机制来处理外部设备的请求,比如时钟中断、键盘中断等等 。通过此可以灰常灰常容易的处理外部中断 。
【怎么用c语言写中断函数 c语言实现中断】关于怎么用c语言写中断函数和c语言实现中断的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 电视内存不够怎么办,电视内存不够怎么办?三个方法帮你快速解决!
- 解谜游戏2766,解谜游戏手游
- 美女直播素材pan的简单介绍
- php数据查询后如何显示 php数据查询后如何显示出来
- 公众号如何推广涨粉文章,公众号怎么推广快又有效
- 微视频创文带来什么,微视频创作报告范文
- 走路直播素材下载,走路直播素材下载安装
- vb.net控件打开文件 vbnet控件位置
- sap实施顾问业务笔试题,sap实施顾问加班多吗