学习外部中止,由于不了解,直接粘了程序来履行。
void ISR0_Key() interrupt 0 using 1
{
}
{
}
void Main()
{
}
履行成果如同有点乱。不太了解,边缘和电平触发的差异。从网上看了,能了解,可实践履行是不相同的。
1、在第1次扫描到键盘按下时,成果如前面咱们说的相同,不论是低电平触发仍是下降沿触发成果都会触发事情,这儿触发时即指示灯点亮。然后程序持续运转……
2、当程序持续运转到第2次扫描键盘时按键还没铺开,成果就不相同了。
低电平触发:触发条件仍然为低电平,触发条件建立,那么履行事情,指示灯状况改动,此刻指示灯由亮变灭;
下降沿触发:触发条件仍然为低电平,下降沿触发条件不建立,那么不履行事情,指示灯保持本来的亮的状况。
呵呵,明日再研讨吧!
还有便是中止处理程序的一些问题。
中止服务程序经过运用 interrupt 关键字和中止号(0 到 31)来完成中止服务程序处理的是哪一个中止。 using 关键字用来指定中止服务程序运用的寄存器组。用法是:using 后跟一个0 到3 的数,对应着 4 组作业寄存器。一旦指定作业寄存器组,默许的作业寄存器组就不会被压栈,这将节约 32 个处理周期,由于入栈和出栈都需求 2 个处理周期。 今日只试了进入中止这种方法。明日试下查询的方法,应该和定时器是相同的。 |