a461624201 发表于 2020-2-18 12:27:46

LGT8F328P 看门狗中断无法启用问题。

本帖最后由 a461624201 于 2020-2-18 12:40 编辑

网上类似问题:https://forum.arduino.cc/index.php?topic=599892.msg4075726,
附件的例子nano下可以正常运行,但是LGT8F328P就会不停复位,根据手册也没找到语法问题。
难道有某些的寄存器导致单片机周期和nano不一致了?
WDTCSR=(1<<WDIE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0);这个是8秒一次溢出产生中断。

qingkong 发表于 2020-3-17 10:10:01

:lol 用专门的库
#include <PMU.h>
和 nano 不一样

写SD卡貌似也得用专门的库

a461624201 发表于 2020-6-6 17:47:51

#include "PMU.h"


volatile int kan_mengou=0;


void setup() {
pinMode(13, OUTPUT);   digitalWrite(13, LOW);

Serial.begin(9600);Serial.println("Start");
delay(3333);

ADCSRA = 0;

PMU.sleep(PM_POFFS1,SLEEP_8S);   
}
String _10_to_2_string(byte a){
   byte   e=B10000000;String A;
    for (int j=0;j<=7;j++)
                { if(e&a) A=A+"1";
                        else A=A+"0";e=e>>1;
                  
                  }
   String         s= A; s= s.substring(0,4)+" "+s.substring(4,8);      
   int aa=8-s.length();
   for (int jj=0;jj<=aa;jj++) s="0"+s;
   
      return (s);
}
          //设定为 溢出中断 及 8s的狗
//                                 //看门狗预分频选择列表:
//WDP3 WDP2 WDP1 WDP0   看门狗定时器溢出周期数   32KHz时钟   2MHz时钟
//0 0 0 0                                  2K cycles 64ms 1ms
//0 0 0 1                                 4K cycles 128ms 2ms
//0 0 1 0                                 8K cycles 256ms 4ms
//0 0 1 1                                    16K cycles 512ms 8ms
//0 1 0 0                                    32K cycles 1s 16ms
//0 1 0 1                                     64K cycles 2s 32ms
//0 1 1 0                                     128K cycles 4s 64ms
//0 1 1 1                                     256K cycles 8s 128ms
//1 0 0 0                                    512K cycles 16s 256ms
//1 0 0 1                                    1024K cycles 32s 512ms
                              
                  

                           
void loop()
{ kan_mengou=kan_mengou+1;
               
   if(kan_mengou>=2){
Serial.begin(9600);Serial.println( "   WDIF    WDIEWDP3WDCE            WDE   WDP2   WDP1    WDP0 ");
   Serial.print ( _10_to_2_string ( WDTCSR));
   Serial.println("    I have sleep in :"+String(kan_mengou )+"*8");
      pinMode(13, OUTPUT); digitalWrite(13, 1);
   delay(5333);
   pinMode(13, OUTPUT); digitalWrite(13, 0);
   kan_mengou=0;
PMU.sleep(PM_POFFS1,SLEEP_8S);   
   }
else

PMU.sleep(PM_POFFS1, SLEEP_8S);//SLEEP_32S SLEEP_8S


}

页: [1]
查看完整版本: LGT8F328P 看门狗中断无法启用问题。