以下是引用kent8411在2008-12-27 13:59:00的发言: 中断运行时间应该不是固定的吧?你想测试这个时间可以使用对另外一个可操作的IO口给高低电平,使用示波器观察!时间有长有短.一般应该看的是最长的那个吧! 我不想用示波器来看,我想通过定时器子类的取出这个值来。这是判断外设的一个标志 我现在是这样用的 但是,在中断中却读不出数来,在main函数中是可以的
我现在用的是cw4.7里的PE
想记录中断发生了多长时间,中断名为EInt1_OnInterrupt 我在个中断发生后,用如下方式实现记录其运行了多久.如果这段代码(如下) FC161_Reset(); // reset the counter Cpu_Delay100US(500);//延迟,做中断处理等等
if(FC161_GetTimeUS(&bbb) == ERR_OK) {//记录从reset到当前的时间
ccc = bbb / 60000.0; 放在main()里,是可以记录运行时间的,即bbb里有数据.但是如果把上述代码放到名为EInt1_OnInterrupt的中断中,同样的代码,bbb却始终为0. 是不是在中断中不能有类似FC161_Reset()之类的函数呢?还是要进行别的什么设置呢?
这是含有FC161_Reset()等语句的中断函数void EInt1_OnInterrupt(void) { /* place your EInt1 interrupt procedure body here */
FC161_Reset(); // reset the counter Cpu_Delay100US(500);//延迟,做中断处理等等
if(FC161_GetTimeUS(&bbb) == ERR_OK) {//记录从reset到当前的时间
ccc = bbb / 60000.0; }
|