|
本帖最后由 爱随缘 于 2018-11-3 10:34 编辑 程序已经全部写好,测试没有问题,现在加入看门狗程序,16MHZ主频,4分频,255MS复位时间(独立看门狗)程序如下,我关闭定时器4后程序正常,或者我最里面的循环关闭读取AIN6的值也正常(就是第一个图片画圈的位置),其他我尝试过修改定时器4进入时间和看门狗复位时间均没有效果。大家帮我看下怎么回事,谢谢了。还有个我主程序有3个嵌套死循环,1-2循环没有任何问题,到最后这个循环出现了问题,。我去掉看门狗没有任何问题,加入后就是运行到最里面的循环出现复位。AIN6我再其他2个循环里面也有用到均没有问题,应该不是ADC程序问题。
|
STM8S103飞线外接芯片,I2C不能得到slaveAddress应答,通讯失败。
测试标签123
IAR FOR ARM和IAR FOR STM8无法共存,
STM8L052,液晶内部电源怎么用?
STM8S105C6T6 UART2串口,能接收数据,不能发送数据
STM8S105K4 串口2 无奇偶校验,也能接收 偶校验的 数据
在STM8S的IAP使用中断和APP使用中断问题
STM8L151 SMBUS设计
STM8S103F复位异常
STM8L的LCD调试时不亮
微信公众号
手机版
请只在一个地方执行read_adc_value()操作,不论是通道5,还是6,只是同一个ADC的不同通道。
你在 GetAdcValue()中整的死循环等标志位。
试想,正在执行通道6的adc转换,这时被中断中要执行的通道5的adc转换打断,会出来什么情况,很有可能发生时序紊乱。而时序乱了,执行时间超过看门狗复位时间,也就不足为奇了。
不妨将通道6的ADC转换也一并放到定时器4中去,如果主程序中通道6的速度不要求太快的话,可以加个累加标志变量,隔几个定时器中断周期转换一次。
例如中断只是设置一个状态,在主程序中再根据状态执行相应的操作。
或者你设置一个优先级比较高的定时器中断,在其中不断地喂狗