论坛,我可以在p24FJ128GC006上初始化和设置RTCC,但是我不能更新,即在第一次设置RTCC之后将RTCC设置为新值。参见下面的.MPLAB v8.92XC16v1.24Tes
tinginProgram/Release模式。有什么建议吗?我在24FJ64GA102上使用了完全相同的代码(减去了几个HW特定的参数),并且我能够更新RTCC。0-99无符号字符rsvd;//为将来使用无符号字符mday保留;//BCD编码为月日,01-31Mat无符号字符mon;//BCD编码为月,01-12无符号字符小时;//BCD编码为小时,00-24无符号字符wday;//BCD编码为月日e周,00-06无符号字符秒;//BCD编码秒,00-59无符号字符分钟;//BCD编码分钟,00-59}字节;//字段访问无符号字符b[8];//BYTE访问无符号整数w[4];//16位访问无符号长整数l[2];//32位访问}RTCCFORM;ePorts(void){//禁用外围设备PMD1=0xFFFF;//完全禁用定时器1-5、I2C1、UART1和UART2、SPI1和SPI2,以及ADC1模块PMD2=0xFFFF;//完全禁用输入捕获和输出比较模块1-8PMD3=0xFDFF;//完全禁用TXM,比较器R,PMP,CRC,DAC1,UART3,和I2C2,模块。启用RTCC模块PMD4=0xFFFF;//完全禁用UPW、UART4、CTM、HLVD、参考时钟、USB模块PMD5=0xFFFF;//完全禁用输入捕获和输出比较模块9PMD6=0xFFFF;//完全禁用LCD、AMP1、CAC2、AMP2和SDA1模块PMD7=0xFFFF;//完全禁用所有DMA外围设备}//endIn.alizePortsRTCCFORMrtcc;//RTCC读/写结构化InitRTCC(void){_builtin_write_OSCCONL(OSCCON|0x02);//启用32kHzOSC//RTCC配置_u builtin_write_RTCWEN();//启用RTCC值寄存器写RCFGCAL比特.RTCEN=1;//启用RTCC模块RCFGCALbits.RTCWREN=0;//禁用RTCC值寄存器写//中断配置IFS3bits.RTCIF=0;//清除RTCC警报中断标志IEC3bits.RTCIE=1;//启用RTCC警报中断IPC15bits.RTCIP=4;//先验设置中断Ty}//Enter IrTTCC()空VSETTCC时钟(未签名CHAR UTCHBCD〔9〕){//步骤1。用UTC BCD值rtCC值加载RTCC值与UTC BCD值rtcc RTCC值一起加载RTCC值,具有UTC BCD值rtCCBCCBCD值rtccBCCBCD值rtcc.byCBCD值rtcc.字节值rtcc,rtCCBCDCBCD值rtcc.字节.byC.字节.byD.ye=rtcc.byC.字节=UTC_BCD[1]=UTC_UTC_BCD[1]];rtcc.字节.字节.字节=rtcc.字节.mon=UTC_字节=UTC_COBBBBBC_BCD[1][1]]];rtcc.htcc.by字节.by字节.mon=UTC.步骤2.启用RTCC值寄存器写入α-uBuffTynRead ErrTWEN();//启用RTCC值寄存器写入/ /步骤3。设置RTCVAL RCFGCALbits.RTCPTR=0x3;RTCVAL=rtcc.w[0];//SetYearRTCVAL=rtcc.w[1];//Set.,day RTCVAL=rtcc.w[2];//Set.,day of.RTCVAL=rtcc.w[3];//设置min,sec//Step 4.禁用RTCC值寄存器写rCFGCABITS.RTCWREEN=0;/ /禁用的RTCC值写}//Enter StRTCCcLoCK()