MSP430讨论区
返回
登录/注册
[求教]PMM写入老是PUC
楼主
flinky 于 2011-04-12 17:44:10
[求教]PMM写入老是PUC
我用的是F5438
对PMM寄存器操作的时候一写就PUC,不知道怎么回事。
下面这两句,执行到第二句的时候就PUC...
PMMCTL0 = 0xA500;
SVSMIO |= SVMHOE;
哪位大侠指点一二
我用的头文件是自带的io430x54x.h
头文件是如下面这样写的,但是PMMCTL0是16位的寄存器,而下面的定义只有8位。
按照这个定义去执行上面两条语句的时候到第二句就PUC了。
__no_init volatile union
{
unsigned short PMMCTL0; /* PMM Control 0 */
struct
{
unsigned short PMMCOREV0 : 1; /* PMM Core Voltage Bit: 0 */
unsigned short PMMCOREV1 : 1; /* PMM Core Voltage Bit: 1 */
unsigned short PMMSWBOR : 1; /* PMM Software BOR */
unsigned short PMMSWPOR : 1; /* PMM Software POR */
unsigned short PMMREGOFF : 1; /* PMM Turn Regulator off */
unsigned short : 2;
unsigned short PMMHPMRE : 1; /* PMM Global High Power Module Request Enable */
} PMMCTL0_bit;
} @ 0x0120;
所以我又在下面加了一个高8位:
__no_init volatile union
{
unsigned short PMMCTL0; /* PMM Control 0 */
struct
{
unsigned short PMMCOREV0 : 1; /* PMM Core Voltage Bit: 0 */
unsigned short PMMCOREV1 : 1; /* PMM Core Voltage Bit: 1 */
unsigned short PMMSWBOR : 1; /* PMM Software BOR */
unsigned short PMMSWPOR : 1; /* PMM Software POR */
unsigned short PMMREGOFF : 1; /* PMM Turn Regulator off */
unsigned short : 2;
unsigned short PMMHPMRE : 1; /* PMM Global High Power Module Request Enable */
unsigned short : 8; /*加的高8位PMMKEY
} PMMCTL0_bit;
} @ 0x0120;
加上后再执行上面两条语句还是PUC
密码是A5没有错啊,那是哪里问题了。请教!
回复
1楼
flinky 于 2011-04-13 23:31:34
回樓上的,這個貼子貌似我回過了。
樓主下面加的那個8位加不加都可以,無所謂。
問題出在,向PPMCTL0寫了密碼後還要寫一個東西才行
PMMCTL0 = 0xA500+PMMCOREV_2;或者隨便加個什麼東西就OK了。
SVSMIO |= SVMHOE;
回复
1
电脑版
Page created in 0.1719 seconds width 3 queries.