ARM实现RTCWord格式.docx
- 文档编号:8116975
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:38
- 大小:23.68KB
ARM实现RTCWord格式.docx
《ARM实现RTCWord格式.docx》由会员分享,可在线阅读,更多相关《ARM实现RTCWord格式.docx(38页珍藏版)》请在冰点文库上搜索。
*********************************************************************************************/
voiduart_init(intnMainClk,intnBaud,intnChannel)
{
//inti;
if(nMainClk==0)
nMainClk=PCLK;
switch(nChannel)
{
caseUART0:
UFCON0=0x0;
//UARTchannel0FIFOcontrolregister,FIFOdisable
UMCON0=0x0;
//UARTchaneel0MODEMcontrolregister,AFCdisable
ULCON0=0x3;
//Linecontrolregister:
Normal,Noparity,1stop,8bits
//[10][9][8][7][6][5][4][3:
2][1:
0]
//ClockSel,TxInt,RxInt,RxTimeOut,Rxerr,Loop-back,Sendbreak,TransmitMode,ReceiveMode
//010,0100,0101
//PCLKLevelPulseDisableGenerateNormalNormalInterruptorPolling
UCON0=0x245;
//Controlregister
//rUBRDIV0=((int)(nMainClk/16./nBaud)-1);
//Baudratedivisiorregister0
UBRDIV0=((int)(nMainClk/16./nBaud+0.5)-1);
//Baudratedivisiorregister0
break;
caseUART1:
UFCON1=0x0;
//UARTchannel1FIFOcontrolregister,FIFOdisable
UMCON1=0x0;
//UARTchaneel1MODEMcontrolregister,AFCdisable
ULCON1=0x3;
UCON1=0x245;
UBRDIV1=((int)(nMainClk/16./nBaud)-1);
default:
}
//for(i=0;
i<
100;
i++);
//delay(400);
}
uart_sendstring
Sendstringtouartchannel
pString--input,string
voiduart_sendbyte(unsignedcharnData)
UTXH0=nData;
while(!
(UTRSTAT0&
0x2));
voiduart_sendstring(char*pString)
while(*pString!
='
\0'
)
uart_sendbyte(*pString++);
voiduart_printf(char*fmt)
uart_sendstring(fmt);
rtc_init
rtcinit
voidrtc_init(void)
RTCCON=RTCCON&
~(0xf)|0x1;
//Noreset,MergeBCDcounters,1/32768,RTCControlenable
BCDYEAR=BCDYEAR&
~(0xff)|TESTYEAR;
BCDMON=BCDMON&
~(0x1f)|TESTMONTH;
BCDDATE=BCDDATE&
~(0x3f)|TESTDATE;
BCDDAY=BCDDAY&
~(0x7)|TESTDAY;
//SUN:
7
BCDHOUR=BCDHOUR&
~(0x3f)|TESTHOUR;
BCDMIN=BCDMIN&
~(0x7f)|TESTMIN;
BCDSEC=BCDSEC&
~(0x7f)|TESTSEC;
RTCCON=0x0;
//Noreset,MergeBCDcounters,1/32768,RTCControldisable
intmain()
inti=0;
//unsignedcharsec,min,hour,date,mon,year,time;
WTCON=0;
CLKDIVN=(1<
<
1)|1;
//设置1:
2:
4
MPLLCON=(0xa1<
12)|(0x3<
4)|0x1;
//Fin=12MHzFCLK=202.8MHz
//===PORTHGROUP
//Ports:
GPH10GPH9GPH8GPH7GPH6GPH5GPH4GPH3GPH2GPH1GPH0
//Signal:
GPH10CLKOUT0SD_WPCTS1RTS1RXD1TXD1RXD0TXD0nRTS0nCTS0
//Setting:
OutputCLKOUT0GPH8nCTS1nRTS1RXD1TXD1RXD0TXD0nRTS0nCTS0
//Binary:
10,1010,1111,1010,1010,1010
GPHCON=0x2afaaa;
GPHUP=0x7ff;
//ThepullupfunctionisdisabledGPH[10:
uart_init(PCLK,115200,UART0);
uart_printf("
bootsuccess..."
);
rtc_init();
while
(1)
for(i=600000;
i!
=0;
i--);
uart_sendbyte(sheet[(BCDHOUR>
>
4)&
0xf]);
uart_sendbyte(sheet[BCDHOUR&
uart_sendbyte('
:
'
uart_sendbyte(sheet[(BCDMIN>
uart_sendbyte(sheet[BCDMIN&
uart_sendbyte(sheet[(BCDSEC>
uart_sendbyte(sheet[BCDSEC&
\n'
;
/*****************************************************************************/
/*S3C2410A.S:
StartupfileforSamsungS3C410A*/
/*<
UseConfigurationWizardinContextMenu>
*/
/*ThisfileispartoftheuVision/ARMdevelopmenttools.*/
/*Copyright(c)2005-2006KeilSoftware.Allrightsreserved.*/
/*Thissoftwaremayonlybeusedunderthetermsofavalid,current,*/
/*enduserlicencefromKEILforacompatibleversionofKEILsoftware*/
/*developmenttools.Nothingelsegivesyoutherighttousethissoftware.*/
***StartupCode(executedafterReset)***
StandarddefinitionsofModebitsandInterrupt(I&
F)flagsinPSRs
Mode_USREQU0x10
Mode_FIQEQU0x11
Mode_IRQEQU0x12
Mode_SVCEQU0x13
Mode_ABTEQU0x17
Mode_UNDEQU0x1B
Mode_SYSEQU0x1F
I_BitEQU0x80;
whenIbitisset,IRQisdisabled
F_BitEQU0x40;
whenFbitisset,FIQisdisabled
//<
h>
StackConfiguration(StackSizesinBytes)
o0>
UndefinedMode<
0x0-0xFFFFFFFF:
8>
o1>
SupervisorMode<
o2>
AbortMode<
o3>
FastInterruptMode<
o4>
InterruptMode<
o5>
User/SystemMode<
/h>
UND_Stack_SizeEQU0x00000000
SVC_Stack_SizeEQU0x00000008
ABT_Stack_SizeEQU0x00000000
FIQ_Stack_SizeEQU0x00000000
IRQ_Stack_SizeEQU0x00000080
USR_Stack_SizeEQU0x00000400
Stack_SizeEQU(UND_Stack_Size+SVC_Stack_Size+ABT_Stack_Size+\
FIQ_Stack_Size+IRQ_Stack_Size+USR_Stack_Size)
AREASTACK,NOINIT,READWRITE,ALIGN=3
Stack_MemSPACEStack_Size
Stack_TopEQUStack_Mem+Stack_Size
HeapConfiguration
o>
HeapSize(inBytes)<
0x0-0xFFFFFFFF>
Heap_SizeEQU0x00000000
AREAHEAP,NOINIT,READWRITE,ALIGN=3
Heap_MemSPACEHeap_Size
ClockManagementdefinitions
CLK_BASEEQU0x4C000000;
ClockBaseAddress
LOCKTIME_OFSEQU0x00;
LOCKTIMEOffset
MPLLCON_OFSEQU0x04;
MPLLCONOffset
UPLLCON_OFSEQU0X08;
UPLLCONOffset
CLKCON_OFSEQU0x0C;
CLKCONOffset
CLKSLOW_OFSEQU0x10;
CLKSLOWOffset
CLKDIVN_OFSEQU0X14;
CLDKIVNOffset
CAMDIVN_OFSEQU0X18;
CAMDIVNOffset
e>
ClockManagement
MPLLSettings
i>
Mpll=(m*Fin)/(p*2^s)
o1.12..19>
MDIV:
Maindivider<
0x0-0xFF>
m=MDIV+8
o1.4..9>
PDIV:
Pre-divider<
0x0-0x3F>
p=PDIV+2
o1.0..1>
SDIV:
PostDivider<
0x0-0x03>
s=SDIV
UPLLSettings
Upll=(m*Fin)/(p*2^s),Uclkmustbe48MHZtoUSBdevice
o2.12..19>
0x1-0xF8>
m=MDIV+8,ifFin=12MHZMDIVcouldbe0x38
o2.4..9>
0x1-0x3E>
p=PDIV+2,ifFin=12MHZPDIVcouldbe0x2
o2.0..1>
s=SDIV,ifFin=12MHZSDIVcouldbe0x2
LOCKTIME
o5.0..11>
LTIMECNT:
MPLLLockTimeCount<
0x0-0xFFF>
o5.12..23>
UPLLLockTimeCount<
MasterClock
PLLClock:
FCLK=FMPLL
SlowClock:
FCLK=Fin/(2*SLOW_VAL),SLOW_VAL>
0
FCLK=Fin,SLOW_VAL=0
o4.7>
UCLK_ON:
UCLKON
0:
UCLKON(UPLLisalsoturnedon)1:
UCLKOFF(UPLLisalsoturnedoff)
o4.5>
MPLL_OFF:
TurnoffPLL
TurnonPLL.AfterPLLstabilizationtime(minimum300us),SLOW_BITcanbeclearedto0.1:
TurnoffPLL.PLListurnedoffonlywhenSLOW_BITis1.
o4.4>
SLOW_BIT:
SlowClock
o4.0..2>
SLOW_VAL:
SlowClockdivider<
0x0-0x7>
CLOCKDIVIDERCONTROL
o6.1>
HDIVN
HCLK=FCLK/1,01:
HCLK=FCLK/2
o6.0>
PDIVN
PCLKhastheclocksameastheHCLK/1,1:
PCLKhastheclocksameastheHCLK/2
ClockGeneration
o3.18>
SPI<
0=>
Disable<
1=>
Enable
o3.17>
IIS<
o3.16>
IIC<
o3.15>
ADC<
o3.14>
RTC<
o3.13>
GPIO<
o3.12>
UART2<
o3.11>
UART1<
o3.10>
UART0<
o3.9>
SDI<
o3.8>
PWMTIMER<
o3.7>
USBdevice<
o3.6>
USBhost<
o3.5>
LCDC<
o3.4>
NANDFLASHController<
o3.3>
POWER-OFF<
o3.2>
IDLEBIT<
O3.0>
SM_BIT<
/e>
CLK_SETUPEQU1
MPLLCON_ValEQU0x0005C080
UPLLCON_ValEQU0x00028080
CLKCON_ValEQU0x0007FFF0
CLKSLOW_ValEQU0x00000004
LOCKTIME_ValEQU0x00FFFFFF
CLKDIVN_ValEQU0X00000000
Interruptdefinitions
INTOFFSETEQU0X4A000014;
AddressofInterruptoffsetRegister
//<
InterruptVectorTable
o1.0..31>
InterruptVectoraddress<
0x20-0x3fffff78>
YoucoulddefineInteruuptVctorTableaddress.
TheInterruptVectorTableaddressmustbewordalignedadress.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 实现 RTC