⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 看门狗的源码
💻 C
字号:
//LED GPIO#define GPBCON	(*(volatile unsigned long *)0x56000010)#define GPBDAT	(*(volatile unsigned long *)0x56000014)#define GPBUP	(*(volatile unsigned long *)0x56000018)// Set Uart#define UART_CTL_BASE	0x50000000#define	reg(i)	(*(volatile unsigned long *)(UART_CTL_BASE + i))#define	Utrstat0	reg(0x10)#define Utxh0	reg(0x20)void InitLed(){	GPBCON = (GPBCON & ~0x3fc000) | 0x154000;	GPBUP &= ~0x780;}void LedPlay(int iLedVal){	GPBDAT=(GPBDAT | 0x780) &( ~(( iLedVal & 0x78) << 4));}void Delay(int msec){	int iDelay = msec * 2048;	while(iDelay)		iDelay--;}void send(char ch){		while(!(Utrstat0 & 0x4));	Utxh0 |= ch;}char* charge(int Index){	return "0123456789abcdef"+Index;}void MyOut(char *pszFmt,...){	char *pszVal;	int iVal, xVal, i = 0, tmp, buffer[12], index = 1;	char cVal, a[10];	int *pArg;	pArg =(int *)&pszFmt;	while(*pszFmt)	{		if('%' != *pszFmt)		{			send(*pszFmt);			pszFmt++;			continue;		}		pszFmt++; 		if(*pszFmt == 's')		{			pszVal = (char*)pArg[index++];			for(; *pszVal != '\0'; pszVal++)				send(*pszVal);			pszFmt++;			continue;		}		if(*pszFmt == 'd')		{				iVal = pArg[index++];			while(iVal>0)			{				tmp = iVal % 10; 				a[i++] = 0x30 + tmp;				iVal /= 10;			 }			for(tmp = i-1; tmp >= 0; tmp--)				send(a[i]);			pszFmt++;			continue;		}		if(*pszFmt == 'c')		{			cVal = (char)pArg[index++];			send(cVal);			pszFmt++;			continue;		}		if(*pszFmt == 'x')		{			xVal = pArg[index++];			i = 0;			do{				buffer[i++] = xVal % 16;				xVal /= 16;			}while(xVal);			if(i%2!=0)				buffer[i++]=0;//			if(i<2)//				buffer[i++]=0;							while(i > 0)			{				i--;				send(*charge(buffer[i]));			}			pszFmt++;			continue;		}		if(pszFmt == '\0')		{			break;		}			}}int Interrupt(){	MyOut("\n\r%s\n\r","watchdog interrupt");	GPBDAT=(GPBDAT | 0x780);	Delay(1000);	Delay(100);	return 0;}int Main(){	int i=0;	InitLed();	while(1)	{			i++;		LedPlay(i);		Delay(10);	}	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -