適時時鐘的設置:直接向相關數據寄存器里寫入相應的時間值。如:rBCDSEC=0x30; 在S3C2440的DATASHEET中介紹的一樣:rBCDSEC的4--6位對應于十進制秒的十位,0--3位對應的是十進制的個位。如果要對寄存器賦值30秒則要寫成:rBCDSEC=0x30;或rBCDSEC=48;而寫成rBCDSEC=30;則是錯的!這是寄存器與十進制的位置對應關系決定的。 適時時鐘的讀取:在一些初學者看來,只要讀取相應寄存器的值,然后用格式化輸出函數的%d輸出就可以了(我就是這樣認為的)。其實不然,在ARM中時間的輸出有一個專用的格式化輸出符號:%x 。用其它的格式化輸出符號則會出錯!
printf("今天是:20%2x年%2x月%2x日--%2x:%2x:%2x\n\n",rBCDYEAR,rBCDMON,rBCDDATE,rBCDHOUR,rBCDMIN,rBCDSEC);
|