⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 GPL162001的RTC模組demo程式
💻 C
字号:
/***************************************************************
Date:        2007 03 09
Description: IM-Robot main function

***************************************************************/

#include "IM_Robot.h"
#include "math.h"

UInt16 Err_now = 0, Err_abs = 0, Pos_now = 0, Pos_goal = 0;
UInt16 temp = 0, i = 0, j = 0;

int main()
{
	Disable_IRQ();
	System_Init();
	asm("int irq\n");
	Set_Clock(14, 52, 55);
	Set_Alarm(14, 53, 0);
	while(1)
	{
	}	
	return 0;
}

void System_Init()
{
	*P_Clock_Ctrl = 0x8400;      // Enable PLL, System clk is PLL clk, 
	                             // 32768Hz weak mode, IOB0 32768Hz output disable, 
	                             // IOA and IOB wake up function disable, SYSCLK is PLL(48MHz)
	*P_LVR_Ctrl = 0x0002;        // Disable Low Voltage Reset function
		
/************** GPIO setting **************/
    // IOA
    *P_IOA_Data = 0x0000;        // Set IOA[15:0] as output 0x0000
	*P_IOA_Attrib = 0xFFFF;      // IOA[1:0] control motor rotate direction (output)
	*P_IOA_Dir = 0xFFFF;
	// IOB
	*P_IOB_Data = 0x0000;        // Set IOB[15:0] as output 0x0000
	*P_IOB_Attrib = 0xFFFF;      // IOB[1:0] are PWM output
	*P_IOB_Dir = 0xFFFF;
	//IOC
	*P_IOC_Data = 0x0000;        
	*P_IOC_Attrib = 0xFFFF;     
	*P_IOC_Dir = 0xFFFF;	
}

void Set_Clock(UInt16 Hr, UInt16 Min, UInt16 Sec)
{
	*P_Second = Sec;
	for(i=0; i<50000; i++);  // delay 2 cycles of 32768Hz
	*P_Minute = Min;
	for(i=0; i<50000; i++);
	*P_Hour = Hr;
	for(i=0; i<50000; i++);
	*P_RTC_Ctrl = 0x8700;    // Enable RTC, Hr/Min/Sec, alarm
	*P_RTC_INT_Ctrl = 0x400; // enable alarm
}

void Set_Alarm(UInt16 Hr, UInt16 Min, UInt16 Sec)
{
	*P_Alarm_Second = Sec;
	*P_Alarm_Minute = Min;
	*P_Alarm_Hour = Hr;
}

/*void IRQ7(void) __attribute__ ((ISR));
void IRQ7(void)
{	
	if (RTC_INT_Status_Reg->B.ALMIF_C == 1)
	{
		RTC_INT_Status_Reg->B.ALMIF_C = 1;  // clear flag
		IOA_Data_Reg->W = 0x1111;
	}
}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -