知识点总结(或有错误)
- 低电平是一直按着按钮动作,下降沿是每按一下动作一下
2低电平触发是中断允许后,只要中断引脚的信号是低电平,就触发中断,使用时注意,如果低电平一直保持,会导致多次触发中断。
3下降沿触发是中断允许后,只要中断引脚的信号出现下降沿,就触发中断,使用时注意,如果信号出现抖动,会导致多次触发中断。
4 P0IFG是端口0中断状态标志,端口0中bit7~bit0为输入中断状态标志。当输入端口中断请求未决时,则其相应标志位置1即可
5 只要外部中断IO口,处于低电平状态,就会一直进入中断函数大概是这样
检测(是否低电平)
是-进入
执行中断函数
执行完-检测(是否低电平)
是-进入 否-退出
6 LED1 = !LED1; //LED1闪烁
LED1 = ~LED1; //改变LED1的状态
7 中断时 IRCON=1
8 中断和计数器有保留性
睡眠————定时器
当定时器的值等于 24 位比较器的值,就发生一次定时器比较。通过写入寄存器 ST2:ST1:ST0 来设置比较值。当 STLOAD.LDRDY 是 1 写入 ST0 发起加载新的比较值,即写入 ST2、ST1 和 ST0 寄存器的最新的值。
加载期间 STLOAD.LDRDY 是 0,软件不能开始一个新的加载,直到 STLOAD.LDRDY 回到 1。读 ST0 将捕获 24 位计数器的当前值。因此,ST0 寄存器必须在 ST1和 ST2 之前读,以捕获一个正确的睡眠定时器计数值。当发生一个定时器比较,中断标志 STIF 被设置。每次系统时钟,当前定时器值就被更新。因此,当从 PM1/2/3(这期间系统时钟关闭)返回,如果尚未在 32kHz 时钟上检测到一个正时钟边沿,ST2:ST1:ST0 中的睡眠定时器值不更新, 要保证读出一个最新的值, 必须在读睡眠定时器值之前,在 32kHz 时钟上通过轮询 SLEEPSTA.CLK32K 位,等待一个正的变换。
ST 中断的中断使能位是 IEN0.STIE,中断标志是 IRCON.STIF。