求助PIC24F DSWDT寄存器设置方法

2019-03-25 19:02发布

这个是头文件里对寄存器设置的描述
extern __attribute__((space(prog))) int _FDS;
#define _FDS(x) __attribute__((section("__FDS.sec"),space(prog))) int _FDS = (x);

/*
** Only one invocation of FDS should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FDS.
** Multiple options may be combined, as shown:
**
** _FDS( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
**   Deep Sleep Watchdog Timer:
**     DSWDTEN_OFF          Disabled
**     DSWDTEN_ON           Enabled
**
**   Deep Sleep BOR:
**     DSBOREN_OFF          Disabled
**     DSBOREN_ON           Enabled
**
**   RTCC Reference Oscillator Select:
**     RTCOSC_LPRC          Low Power RC Oscillator (LPRC)
**     RTCOSC_SOSC          Secondary Oscillator (SOSC)
**
**   Deep Sleep Watchdog Oscillator Clock Select:
**     DSWDTOSC_LPRC        Secondary Oscillator (SOSC)
**     DSWDTOSC_SOSC        Low Power RC Oscillator (LPRC)
**
**   Deep Sleep Watchdog Postscale Select Bits:
**     DSWDTPS_DSWDTPS0     1:2 (2.1 ms)
**     DSWDTPS_DSWDTPS1     1:8 (8.3 ms)
**     DSWDTPS_DSWDTPS2     1:32 (33 ms)
**     DSWDTPS_DSWDTPS3     1:128 (132 ms)
**     DSWDTPS_DSWDTPS4     1:512 (528 ms)
**     DSWDTPS_DSWDTPS5     1:2048 (2.1 Seconds)
**     DSWDTPS_DSWDTPS6     1:8192 (8.5 Seconds)
**     DSWDTPS_DSWDTPS7     1:32,768 (34 Seconds)
**     DSWDTPS_DSWDTPS8     1:131,072 (135 Seconds)
**     DSWDTPS_DSWDTPS9     1:524,288 (9 Minutes)
**     DSWDTPS_DSWDTPSA     1:2,097,152 (36 Minutes)
**     DSWDTPS_DSWDTPSB     1:8,388,608 (2.4 Hours)
**     DSWDTPS_DSWDTPSC     1:33,554,432 (9.6 Hours)
**     DSWDTPS_DSWDTPSD     1:134,217,728 (38.5 Hours)
**     DSWDTPS_DSWDTPSE     1:536,870,912 (6.4 Days)
**     DSWDTPS_DSWDTPSF     1:2,147,483,648 (25.7 Days)
**
*/

#define DSWDTEN_OFF          0xFF7F
#define DSWDTEN_ON           0xFFFF

#define DSBOREN_OFF          0xFFBF
#define DSBOREN_ON           0xFFFF

#define RTCOSC_LPRC          0xFFDF
#define RTCOSC_SOSC          0xFFFF

#define DSWDTOSC_LPRC        0xFFEF
#define DSWDTOSC_SOSC        0xFFFF

#define DSWDTPS_DSWDTPS0     0xFFF0
#define DSWDTPS_DSWDTPS1     0xFFF1
#define DSWDTPS_DSWDTPS2     0xFFF2
#define DSWDTPS_DSWDTPS3     0xFFF3
#define DSWDTPS_DSWDTPS4     0xFFF4
#define DSWDTPS_DSWDTPS5     0xFFF5
#define DSWDTPS_DSWDTPS6     0xFFF6
#define DSWDTPS_DSWDTPS7     0xFFF7
#define DSWDTPS_DSWDTPS8     0xFFF8
#define DSWDTPS_DSWDTPS9     0xFFF9
#define DSWDTPS_DSWDTPSA     0xFFFA
#define DSWDTPS_DSWDTPSB     0xFFFB
#define DSWDTPS_DSWDTPSC     0xFFFC
#define DSWDTPS_DSWDTPSD     0xFFFD
#define DSWDTPS_DSWDTPSE     0xFFFE
#define DSWDTPS_DSWDTPSF     0xFFFF 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
貌然神伤
1楼-- · 2019-03-26 04:40
按照描述
_FDS(DSWDTEN_ON&DSBOREN_OFF&RTCOSC_LPRC&DSWDTOSC_LPRC&DSWDTPS_DSWDTPS5);
编译过不了
报错如下
main.c:57: error: section attribute cannot be specified for local variables
貌然神伤
2楼-- · 2019-03-26 04:48
刚才这个是把语句放到MAIN函数内部出现的

然后把那句话放到函数外的时候编译无错 但是 烧录进单片机没有复位的反应
貌然神伤
3楼-- · 2019-03-26 09:33
请知道的大手们赐教
dingzy_2002
4楼-- · 2019-03-26 12:42
首先,PIC的配置位应该是在MAIN函数外部
另外,一般是在MAIN.C文件的包含文件后第一时间设定
其次,配置位语句本身就有关键字:__CONFIG(前面是两个_)

一周热门 更多>