📄 target.c
字号:
#include "def.h"
#include "option.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"
#include "usrdef.h"
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
U32 SYS_HCLK,SYS_FCLK,SYS_PCLK;
extern char Image$$RW$$Limit[];
void *mallocPt=Image$$RW$$Limit;
//extern int RdURXH0(void);
/*********************************[系统初始化]*********************************/
static int CHANEL=0;
/****[延时子程序]*****/
/*
void Delay(int time)
{
int i;
for(i=time;i>0;i--);
}
*/
static int delayLoopCount = 400;
void Delay(int time)
{
// time=0: adjust the Delay function by WatchDog timer.
// time>0: the number of loop time
// resolution of time is 100us.
int i,adjust=0;
if(time==0)
{
time = 200;
adjust = 1;
delayLoopCount = 400;
//PCLK/1M,Watch-dog disable,1/64,interrupt disable,reset disable
rWTCON = ((PCLK/1000000-1)<<8)|(2<<3);
rWTDAT = 0xffff; //for first update
rWTCNT = 0xffff; //resolution=64us @any PCLK
rWTCON = ((PCLK/1000000-1)<<8)|(2<<3)|(1<<5); //Watch-dog timer start
}
for(;time>0;time--)
for(i=0;i<delayLoopCount;i++);
if(adjust==1)
{
rWTCON = ((PCLK/1000000-1)<<8)|(2<<3); //Watch-dog timer stop
i = 0xffff - rWTCNT; //1count->64us, 200*400 cycle runtime = 64*i us
delayLoopCount = 8000000/(i*64); //200*400:64*i=1*x:100 -> x=80000*100/(64*i)
}
}
/****[端口初始化]****/
void Port_Init(void)
{
/**[Port A]**/ //port A as databus
rGPACON=0x7ffffff;
//rGPADAT
/**[Port B]**/
rGPBCON=0x44555;
//rGPBDAT= //默认值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -