1. 局部调试和全局调试开关的设置
//假设我现在需要单独调试调用SN613的模块
#include <sc.h>
#define SN613_DEMO_MAIN 0
//设置值 = 1 编译这段SN613_DEMO_MAIN(),用于独立测试
//设置值 = 0 不编译这段示例 SN613_DEMO_MAIN (),使用主工程的 main(),可能在另一个文件
//中间是 主程序和本模块通用的代码逻辑
#if SN613_DEMO_MAIN
void main(void)
{
GIE = 0;
OSCCON = 0x70; /* 16 MHz; 4T must ALSO be set in CONFIG */
PWMCON0 = 0; /* no PWM may own RB2 */
SN613_Init();
_delay(80000); /* initial 20 ms; not a PIR warm-up guarantee */
while (1)
{
SN613_Read(1);
_delay(80000); /* 20 ms; line remains INPUT during this wait */
}
}
#endif
2.关于单片机控制充放电时,关闭充电使能,有可能会造成单片机其余输出引脚的输出电压上升;
因为:
停止充电 → 负载减小 → VDD 上冲并抬高 → LED 电流变化
恢复充电 → 负载增大 → VDD 降低 → LED 亮度恢复
实例充电使能波形图:

可以看到当充电使能EN = 0,黄线LED脚的输出发生电压上升,当 充电使能EN = 1时,黄线LED脚的输出又回到和EN一直的波形。因此做出如下推测,是否是EN关闭,导致负载减小,电流增大,造成的LED亮暗脉冲,所以需要去测试VDD的输入电压波形来验证猜想对不对。
验证结果如下:

VDD引脚波形蓝线与LED引脚波形黄线波形几乎吻合,基本可以判定是负载突然减小造成电源输出上冲,导致的LED亮度具有脉冲现象。
参考:SSZT807 Technical article | TI.com

这里的举例是LOAD增大造成的电压下降。

1万+

被折叠的 条评论
为什么被折叠?



