/****************************************************************************/
/*
文件名 : main.c
说明 : 跑马灯测试程序的主文件
作者 : 天乐
biggeorge@126.com
修改历史:
02/02/2005 创建
*/
/*****************************************************************************/
#include <string.h>
#include "..\inc\uTypes.h"
#include "..\inc\44b0x.h"
#include "..\inc\console.h"
#include "..\inc\sysUtils.h"
#include "..\inc\rtc.h"
//申明函数
void IoConfig (void);
STATUS RTCTest (void);
int atoi (const char* s);
//我们用这个片编存储我们的IRQ ISR入口地址
U32 pIrqStart = 0;
U32 pIrqFinish = 0;
U32 pIrqHandler = 0;
U32 g_pTopOfROM = 0;
U32 g_pBaseOfROM = 0;
U32 g_pBaseOfBSS = 0;
U32 g_pBaseOfZero = 0;
U32 g_pEndOfBSS = 0;
extern U32 GetBaseOfROM (void);
extern U32 GetEndOfROM (void);
extern U32 GetBaseOfBSS (void);
extern U32 GetBaseOfZero (void);
extern U32 GetEndOfBSS (void);
int main(void)
{
//int i;
sysUtilsSetPllValue (24, 6, 1);
IoConfig ();
console_init (115200);
printf ("\n\nITSN - 44B0 board Test programe version 1.0.\n\n");
//熄灭所有的LED灯
sysUtilsLightLed (LED_ALL, FALSE);
g_pTopOfROM = GetEndOfROM ();
g_pBaseOfROM = GetBaseOfROM ();
g_pBaseOfBSS = GetBaseOfBSS ();
g_pBaseOfZero = GetBaseOfZero ();
g_pEndOfBSS = GetEndOfBSS ();
#if 0
printf ("g_pTopOfROM = 0x%08x.\n", g_pTopOfROM);
printf ("g_pBaseOfROM = 0x%08x.\n", g_pBaseOfROM);
printf ("g_pBaseOfBSS = 0x%08x.\n", g_pBaseOfBSS);
printf ("g_pBaseOfZero = 0x%08x.\n", g_pBaseOfZero);
printf ("g_pEndOfBSS = 0x%08x.\n", g_pEndOfBSS);
printf ("&g_pTopOfROM = 0x%08x.\n", &g_pTopOfROM);
printf ("&g_pBaseOfROM = 0x%08x.\n", &g_pBaseOfROM);
printf ("&g_pBaseOfBSS = 0x%08x.\n", &g_pBaseOfBSS);
#endif
RTCTest ();
//主循环
for (;;);
return 0;
}
/********************************************************************************
函数名称: IoConfig
功 能: 初始化IO口
参 数: 无
返回 值: 无
*********************************************************************************/
void IoConfig (void)
{
// PORT A GROUP
/* BIT 9 8 7 6 5 4 3 2 1 0 */
/* A24 A23 A22 A21 A20 A19 A18 A17 A16 A0 */
/* 0 1 1 1 1 1 1 1 1 1 */
rPCONA = 0x1ff;
// PORT B GROUP
/* BIT 10 9 8 7 6 5 4 3 2 1 0 */
/* /CS5 /CS4 /CS3 /CS2 /CS1 nWBE3 nWBE2 /SRAS /SCAS SCLK SCKE */
/* EXT NIC 8019 IDE D12 NC NC Sdram Sdram Sdram Sdram */
/* 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1 */
rPDATB = 0x04f;
rPCONB = 0x3cf;
//PORT C GROUP
//BUSWIDTH=16 */
/* PC15 14 13 12 11 10 9 8 */
/* o o RXD1 TXD1 o o o o */
/* NC NC Uart1 Uart1 NC NC NC NC */
/* 01 01 11 11 01 01 01 01 */
/* PC7 6 5 4 3 2 1 0 */
/* o o o o o o o o */
/* NC NC NC NC LED LED LED LED */
/* 01 01 01 01 01 01 01 01 */
rPDATC = 0x0000; //All IO is low
rPCONC = 0x5f555555;
rPUPC = 0x3000; //PULL UP RESISTOR should be enabled to I/O
//PORT D GROUP
/* PORT D GROUP(I/O OR LCD) */
/* BIT7 6 5 4 3 2 1 0 */
/* VF VM VLINE VCLK VD3 VD2 VD1 VD0 */
/* 01 01 01 01 01 01 01 01 */
rPDATD= 0x55;
rPCOND= 0xaaaa;
rPUPD = 0x00;
//These pins must be set only after CPU's internal LCD controller is enable
/////////////////////////////////////////////////////
//PORT E GROUP
/* Bit 8 7 6 5 4 3 2 1 0 */
/* ENDLAN o o TOU2 o o RXD0 TXD0 FOUT */
/* 00 01 01 10 01 01 10 10 11 */
rPDATE = 0x157; //Beep = 10
rPCONE = 0x596b;
rPUPE = 0xff;
//PORT F GROUP
/* Bit8 7 6 5 4 3 2 1 0 */
/* IISCLK IISDI IISDO IISLRCK Input Input Input IICSDA IICSCL */
/* 100 100 100 100 00 00 00 10 10 */
rPDATF = 0x0;
rPCONF = 0x24900a;
rPUPF = 0x1d3;
//PORT G GROUP
/* BIT7 6 5 4 3 2 1 0 */
/* EINT7 EINT6 EINT5 EINT4 EINT3 EINT2 EINT1 EINT0 */
/* KEY3 KEY2 KEY1 KEY0 NIC EXT IDE USB */
/* 11 11 11 11 11 11 11 11 */
rPDATG = 0xff;
rPCONG = 0x0000;
rPUPG = 0x00; //should be enabled
rSPUCR= 0x4;//0x7; //D15-D0 pull-up disable
//rSPUCR= 0x6; //D15-D0 pull-up enable
rSYSCFG = 0x0e; //使用8K字节的指令缓存,write buffer disable
rNCACHBE0 = 0xc0002000; //定义非Cache区,从0x2000000到0xbffffff,中断时进入ROM,若不允许CACHE不正常
rEXTINT = 0x0; //所有的外部硬件中断为低电平触发
}
/********************************************************************************
函数名称: RTCTest
功 能: RTC实时时钟测试函数
参 数: 无
返回 值: 无
*********************************************************************************/
STATUS RTCTest (void)
{
TIME time;
char cInput;
char strInput[80];
rtcShowTime ();
printf ("Set the current time now? [y/n]");
cInput = getch ();
if (('Y' == cInput) || ('y' == cInput))
{
putch (cInput); //回显
printf ("\nNow please input the new RTC value:.\n");
printf ("Year:\t");
gets (strInput);
time.wYear = atoi (strInput);
printf ("Month:\t");
gets (strInput);
time.byMonth = atoi (strInput);
printf ("Day:\t");
gets (strInput);
time.byDay = atoi (strInput);
printf ("Hour:\t");
gets (strInput);
time.byHour = atoi (strInput);
printf ("Min:\t");
gets (strInput);
time.byMin = atoi (strInput);
printf ("Sec:\t");
gets (strInput);
time.bySec = atoi (strInput);
rtcInit (&time);
}
printf ("Now you can powered off the board and after a while.\npower up to see the result.\n");
return STATUS_OK;
}
int atoi (const char* s)
{
int i, nStrLen;
int nRet;
int nTemp;
nStrLen = strlen (s);
if (0 == nStrLen)
return 0;
nRet = 0;
for (i = 0; i < nStrLen; ++ i)
{
nRet *= 10;
nTemp = s[i] - '0';
if ((nTemp > 9) || (nTemp < 0))
{
return 0;
}
nRet += nTemp;
}
return nRet;
}
rtc.rar_ARM7 时钟_RTC
版权申诉
96 浏览量
2022-09-23
23:50:35
上传
评论
收藏 88KB RAR 举报
刘良运
- 粉丝: 66
- 资源: 1万+
最新资源
- 基于flask和echarts融合交易策略的bitfinex可视化微服务.zip
- 包含了wvp-assist.tar wvp-talk.tar zlmediakit.tar .
- 3r4efgh53wgrf43tw
- 2024新版Java基础从入门到精通全套视频+资料下载
- Spring AI大模型视频教程+ChatGPT视频教程+OpenAI大模型视频教程(资料+视频教程)
- ABB工业机器人教程PDF版本
- 123321123323211
- yolov8实战第八天-pyqt5-yolov8实现车牌识别系统(论文(约7000字)+数据集+完整部署代码+代码使用说明)
- 三相桥式全桥整流电路MATALB Simulink仿真文件
- ABB机器人操作培训文档
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈