极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24829|回复: 2

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

[复制链接]
发表于 2020-2-18 12:27:46 | 显示全部楼层 |阅读模式
本帖最后由 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秒一次溢出产生中断。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2020-3-17 10:10:01 | 显示全部楼层
用专门的库
  1.   #include <PMU.h>
复制代码

和 nano 不一样

写SD卡貌似也得用专门的库
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-6 17:47:51 | 显示全部楼层
  1. #include "PMU.h"


  2. volatile int kan_mengou=0;


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

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

  7. ADCSRA = 0;
  8.   
  9.   PMU.sleep(PM_POFFS1,SLEEP_8S);   
  10. }  
  11. String _10_to_2_string(byte a){
  12.    byte   e=B10000000;String A;
  13.     for (int j=0;j<=7;j++)
  14.                 { if(e&a  ) A=A+"1";
  15.                         else A=A+"0";e=e>>1;
  16.                   
  17.                   }
  18.      String         s= A; s= s.substring(0,4)+" "+s.substring(4,8);      
  19.      int aa=8-s.length();  
  20.      for (int jj=0;jj<=aa;jj++) s="0"+s;
  21.      
  22.       return (s);
  23. }
  24.           //设定为 溢出中断 及 8s的狗
  25. //                                   //看门狗预分频选择列表:
  26. //WDP3 WDP2 WDP1 WDP0   看门狗定时器溢出周期数     32KHz时钟   2MHz时钟
  27. //0 0 0 0                                  2K cycles 64ms 1ms
  28. //0 0 0 1                                   4K cycles 128ms 2ms
  29. //0 0 1 0                                   8K cycles 256ms 4ms
  30. //0 0 1 1                                    16K cycles 512ms 8ms
  31. //0 1 0 0                                      32K cycles 1s 16ms
  32. //0 1 0 1                                     64K cycles 2s 32ms
  33. //0 1 1 0                                     128K cycles 4s 64ms
  34. //0 1 1 1                                     256K cycles 8s 128ms
  35. //1 0 0 0                                      512K cycles 16s 256ms
  36. //1 0 0 1                                      1024K cycles 32s 512ms
  37.                               
  38.                   

  39.                              
  40. void loop()  
  41. { kan_mengou=kan_mengou+1;
  42.                
  43.    if(kan_mengou>=2){
  44.   Serial.begin(9600);Serial.println( "   WDIF    WDIE  WDP3  WDCE            WDE   WDP2   WDP1    WDP0 ");
  45.    Serial.print ( _10_to_2_string ( WDTCSR));
  46.    Serial.println("    I have sleep in :"+String(kan_mengou )+"*8");
  47.       pinMode(13, OUTPUT); digitalWrite(13, 1);  
  48.      delay(5333);
  49.      pinMode(13, OUTPUT); digitalWrite(13, 0);  
  50.      kan_mengou=0;
  51.   PMU.sleep(PM_POFFS1,SLEEP_8S);   
  52.    }
  53. else

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


  55. }

复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 19:53 , Processed in 0.043282 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表