VS进行时钟中断
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
时钟中断处理
1.VS2010中如何用C进行时钟中断处理?
如何获取时钟中断并进行中断处理(简洁的说一下怎么写整个中断处理过程)?应该用到哪个头文件中的什么函数?
代码:
UINT SetTimer(
HWND hWnd, // handle of window for timer messages
UINT nIDEvent, // timer identifier
UINT uElapse, // time-out value
TIMERPROC lpTimerFunc // address of timer procedure
);
winuser.h.//头文件
每隔uElapse毫秒的时间,就会发送一个WM_TIMER消息。
2.VS2010 C++中让结果窗口暂停
一是:使用std::cin.get()可以让窗口保持等待状态。
二是:#include
再在你想暂停的地方加上system("pause");
用sleep(毫秒数) 可以让程序暂停多少毫秒
3. μC/OS-II实验连载之六:中断与钩子函数
使用方法:
本实验修改了C:\SOFTWARE\uCOS-II\Ix86L\BC31下的OS_CPU_C.C中的OSTimeTickHook (void)函数,
读者下载本实验代码后,把bc31\source目录下的OS_CPU_C.C文件拷贝覆盖到C:\SOFTWARE\uCOS-II\Ix86L\BC31目录下。
知识点:
1.对于可剥夺型内核(如uCOS-ii)来说,中断服务程序结束后,系统会进行一次
调度,
去运行优先级更高的任务,而不是被中断的任务。
2.允许中断嵌套:即高优先级的中断源的中断请求可以中断低优先级别的中断服务程序。
3.ucos-ii提供了10个钩子函数,供用户自由添加代码。
实验描述:
在时钟中断服务程序中调用了时钟节拍服务函数OSTimeTick(),而OSTimeTick()函数中又
调用了OSTimeTickHook();
实验现象:
显示了每发生500次时钟中断期间,调度器进行任务调度的次数,次数一直累加。
#if OS_CPU_HOOKS_EN > 0
INT16U d=0;
INT16U d1=0;
void OSTimeTickHook (void)
{
char*s0="500";
char*s1="Per";
char*s2="times,context switch counter is:";//中断的调度次数
char s[8];
d++;
if(d==500)
{
PC_DispStr(14,10,s1,DISP_BGND_BLACK+DISP_FGND_WHITE );//x,y PC_DispStr(18,10,s0,DISP_BGND_BLACK+DISP_FGND_WHITE );
PC_DispStr(24,10,s2,DISP_BGND_BLACK+DISP_FGND_WHITE );
sprintf(s,"%d",OSCtxSwCtr);
PC_DispStr(d1+=4,11,s,DISP_BGND_BLACK+DISP_FGND_WHITE );
d=0;
}
}
4.如何用VS2010里面的C语言进行时钟中断处理?
听说VS2010里的中断处理函数与TC的不同,那具体VS2010怎样进行中断处理呢?用哪些函数?请举一个典型例子说明此问题。先谢了!