大家好,我正在测试基于sysbios的RTC例程,按说应该是用硬件中断触发一个服务函数读取实时时钟得值吧,函数主要部分如下
/****************************************************************************/
/* */
/* 实时时钟初始化 */
/* */
/****************************************************************************/
void RTCInit(void)
{
unsigned int UserTime = (0x08473100 | RTC_ANTE_MERIDIEM), UserCalendar = 0x29111000 | RTC_DOTW_MON;
// 禁用 RTC 寄存器写保护
RTCWriteProtectDisable(SOC_RTC_0_REGS);
// 软件复位并使能 RTC
RTCEnable(SOC_RTC_0_REGS);
// 延时 最小3倍 32KH 时钟周期
Delay(0xFFFF);
// 设置时间日期
RTCCalendarSet(SOC_RTC_0_REGS, UserCalendar);
RTCTimeSet(SOC_RTC_0_REGS, UserTime);
// 使能 32KHz 计数器
RTCRun(SOC_RTC_0_REGS);
/****************************************************************************/
/* */
/* 中断服务函数 */
/* */
/****************************************************************************/
void RTCIsr(void)
{
unsigned int timeValue = 0, calendarValue = 0;
// IntEventClear(SYS_INT_RTC_IRQS);
// 读当前时间
timeValue = RTCTimeGet(SOC_RTC_0_REGS);
// 解析时间
// TimeResolve(timeValue);
// 读当前日期
calendarValue = RTCCalendarGet(SOC_RTC_0_REGS);
// UARTPuts(" ", -2);
//
// // 解析日期
// CalendarResolve(calendarValue);
//
// UARTPuts("\r", -2);
}
/* RTC Interrupts */
#define SYS_INT_RTC_IRQS 63
但是执行程序的时候会进入exit.c,然后console提示说硬件中断已经被定义过了,可是我一共就2个硬件中断,RTC服务函数用的是中断号5,然后还有一个动态创建串口中断,中断号也不一样的。另外还有2个定时器函数,可是这和硬件中断也不互相影响吧。
下面时动态创建的串口中断
// 动态创建硬件中断
Hwi_Params hwiParams;
Hwi_Params_init(&hwiParams);
hwiParams.eventId = SYS_INT_UART2_INT;
hwiParams.enableInt = true;
Hwi_create(C674X_MASK_INT4, UARTIsr, &hwiParams, NULL);



