我是想往RTCVAL映射到年寄存器的时候,往里面写入数据,假如是15.
若写入正确,读出来的年是2015,但是通过串口调试出来的数据。结果是不对的
看资料说,RTCWREN这个位要用汇编置1才有效果,我用了发现也和普通置1效果一样。
我的初始化程序
void RTCC_Init()
{
__asm volatile ("MOV #NVMKEY,W1");
__asm volatile ("MOV #0x55, W2");
__asm volatile ("MOV W2,[W1]");
__asm volatile ("MOV #0xAA, W3");
__asm volatile ("MOV W3,[W1]");
__asm volatile ("BSET RCFGCAL, #13"); //set the RTCWREN bit
_RTCOE = 1;//RTCC 输出使能位
// _RTCWREN = 1;//RTCVALH 和RTCVALL 寄存器可被用户写入
_RTCEN = 1;//使能RTCC模块
_SOSCEN = 1;//使能32.768kHz晶振提供时钟源
_PWCEN = 1;
//RTCPWC:RTCC电源控制寄存器
_RTCLK = 0; //选择SOSC振荡器
_RTCOUT = 1 ; //RTCC秒时钟功能
// _RTCLK1 = 0;//选择SOSC振荡器
// _RTCLK0 = 0;//选择SOSC振荡器
// _RTCOUT1 = 0;//RTCC秒时钟功能
// _RTCOUT0 = 1;//RTCC秒时钟功能
}
|