想再次请教一下中断使用的问题,请高手们赐教!

我在写中断服务程序的时候是按照下面步骤写的,请帮我看看对不对,谢谢! 1)在D3上接上跳线,将59引脚设定为中断请求输入引脚! 2)在芯片状态寄存器中开启中断(这步是否可以不要?)。 3)在程序中直接使用CH365SetIntRoutine函数设定中断服务程序。这样做对吗? 另外我在读取存储器时每次读出来的值都是00,为什么?感谢高手们的解答!

您可以参考CH365EVT.zip\PUB\WIN_SW\里的程序


您用的是365的评估板吧! 你把上面的那个16v8去掉再试试读取存储器. 在芯片状态寄存器中开启中断这步不要。


谢谢回答!我还想请教以下,用中断的时候是否要接上J1的跳线?


yes


呵呵,十分感谢!能帮我看看下面这段中断程序吗? void TestInt() {...}; CH365SetIntLine(mCH365_INT_LINE_AUTO); if ( CH365GetIntLine(Device_Number, &mIntLine ) == FALSE ) printf( " ERROR " ); else { CH365ReadConfig(&mIoBase->mCh365IoCtrl,&mByte); CH365WriteConfig(&mIoBase->mCh365IoCtrl,mByte|mBitIntAction); CH365SetIntRoutine(TestInt); } 这样写对吗?另外我还想请教一下,在评估板附带的测试程序DEMO365中是使用中断命令来实现中断的,那样是否就可以不用CH365WriteConfig(&mIoBase->mCh365IoCtrl,mByte|mBitIntAction)这步了? 谢谢,帮我解答一下可以吗?


应该这样写 else { CH365ReadIoByte(&mIoBase->mCh365IoCtrl,&mByte); CH365WriteIoByte(&mIoBase->mCh365IoCtrl,mByte|mBitIntAction); CH365SetIntRoutine(TestInt); } 另外一般这一步是不需要用的.只有在调试时用比较方便.硬件给它低电平中断的时候,芯片内部激活位就会自动置高.


只有登录才能回复,可以选择微信账号登录