C语言中,用于设置中断、中断信号的函数有哪些?怎么设置一个发送中断信号(自己定义的)的函数?
函数要比较新的,dos时代的函数最好不要了。如何设置一个到了一定时间间隔自动发送中断信号在函数?不要alarm(),要精度高一点的。//分数就这么点了,能帮的前辈尽量帮帮...
函数要比较新的,dos时代的函数最好不要了。如何设置一个到了一定时间间隔自动发送中断信号在函数?不要alarm(),要精度高一点的。
//分数就这么点了,能帮的前辈尽量帮帮我…… 展开
//分数就这么点了,能帮的前辈尽量帮帮我…… 展开
2个回答
2016-07-12 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
对于C51单片机,其内部总共有五级中断源
分别为外部中断0、定时器0、外部中断1、定时器1及串行中断。
C51单片机的中断使用时,主要是通过中断服务号来决定的。
如你定义一个中断服务函数:
void KEY(void) intterrupt 0
{
}
当外部中断0申请中断时
会自动根据interrupt后面的0,找到上面定义的这个中断服务函数。
对于其他四个中断源,其对应的中断号分别为1、2 、3、4
分别为外部中断0、定时器0、外部中断1、定时器1及串行中断。
C51单片机的中断使用时,主要是通过中断服务号来决定的。
如你定义一个中断服务函数:
void KEY(void) intterrupt 0
{
}
当外部中断0申请中断时
会自动根据interrupt后面的0,找到上面定义的这个中断服务函数。
对于其他四个中断源,其对应的中断号分别为1、2 、3、4
展开全部
设置一个定时器,然后安装信号处理函数。
以下是一个用定时器写的程序
#include<stdio.h>
#include<time.h>
#include<sys/time.h>
#include<stdlib.h>
#include<signal.h>
static int count=0;
void set_timer()//设置定时器
{
struct itimerval itv;
itv.it_value.tv_sec=3;
itv.it_value.tv_usec=0;
itv.it_interval.tv_sec=2;
itv.it_interval.tv_usec=0;
setitimer(ITIMER_REAL,&itv,NULL);//启动定时器
}
void signal_handler(int m)//信号处理函数
{
count++;
//printf("%d\n",count);
}
int main()
{
signal(SIGALRM,signal_handler);//安装信号
set_timer();
while(count<10);
exit(0);
}
以下是一个用定时器写的程序
#include<stdio.h>
#include<time.h>
#include<sys/time.h>
#include<stdlib.h>
#include<signal.h>
static int count=0;
void set_timer()//设置定时器
{
struct itimerval itv;
itv.it_value.tv_sec=3;
itv.it_value.tv_usec=0;
itv.it_interval.tv_sec=2;
itv.it_interval.tv_usec=0;
setitimer(ITIMER_REAL,&itv,NULL);//启动定时器
}
void signal_handler(int m)//信号处理函数
{
count++;
//printf("%d\n",count);
}
int main()
{
signal(SIGALRM,signal_handler);//安装信号
set_timer();
while(count<10);
exit(0);
}
更多追问追答
追问
谢谢回答,函数写的很好。为什么我没有学到过这些结构体呢?这些结构体很有用,siganal.h.sys/time 我也知道,可就是这些可以用的结构、函数不知道。请问哪本书讲这些常用函数比较多呢?不要纯列举函数的,要讲原理的。没学过单片机,谢谢!
追答
推荐UNIX环境高级编程,linux程序设计
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询