typedef enum {FALSE, TRUE} BOOL;
#define UART0_BASE (0x7F005000)
#define rULCON0 (*(volatile unsigned *)(UART0_BASE+0x00))
typedef enum {FALSE, TRUE} BOOL;
#define WrUTXH0(ch) (*(volatile unsigned char *)(UART0_BASE+0x20))=(unsigned char)(ch)
#define RdURXH0() (*(volatile unsigned char *)(UART0_BASE+0x24))
#define NF_CMD(cmd) {rNFCMD=cmd;}
#define NF_ADDR(addr) {rNFADDR=addr;}
void Port_Init(void)
{
// GPN[15:12] for LED
rGPNCON = (rGPNCON & ~(0xff<<24))|(0x55<<24); // GPN[15:12] as output
rGPNPUD = (rGPNPUD & ~(0xff<<24)); // Pull-Down/Up Disable
}
static void Delay(void)
{
volatile int i;
for(i=0 ; i < 1000 ; i++)
{ }
}
char *hex2char(unsigned int val)
{
static char str[2];
str[1]='\0';
if(val<=9)
str[0]='0'+val;
else
str[0]=('a'+val-10);
return str;
}
//避免頭文件被重復包含
#ifndef __UTILS_H__
#define __UTILS_H__
code ...
#endif // __UTILS_H__