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

📄 led.c

📁 裸跑测试程序
💻 C
字号:
/*************************************

NAME:sky2440_leds.c
COPYRIGHT:www.embedsky.net

*************************************/
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h" 
#include "LED.h"
#include "Keyscan.h"

//extern void Key_Scan(void);
//********************
//  the funtion is keyboard control the led,there is  four running ways .
//  lci add ,20070823 . 
// *******************
void LEDFlash(void)      
{


#define LED1    (1<<5)   // rGPB[5] =1 ;
#define LED2    (1<<6)   // rGPB[5] =1 ;
#define LED3    (1<<7)   // rGPB[5] =1 ;
#define LED4    (1<<8)   // rGPB[5] =1 ;

rGPBUP = rGPBUP & ~0x03f0|0x03f0;   //  LED [8:5] => PU En
rGPBCON = rGPBCON & ~0x3d57ff|0x3d57ff;  //LED[8:5] => OUTPUT;
Uart_Printf("\n TQ LED Test start \n");
while( Uart_GetKey() != ESC_KEY )
	{Delay(100);
	  Uart_Printf("\n TQ LED Testing  \n");   
	if( (rGPFDAT&(1<< 0)) == 0 )	
		{while((rGPFDAT&(1<< 2))&&(rGPGDAT&(1<< 3))&&(rGPGDAT&(1<< 11)) )
			{Uart_Printf("\n key No.1  \n");
			rGPBDAT = rGPBDAT & ~0x1e0|0x1e0;   //LED[8:5] => 1;
			Delay(500);
			rGPBDAT = rGPBDAT & ~(LED1|LED3);
			Delay(500);  
			rGPBDAT =  ~(LED2|LED4);
			//rGPBDAT = rGPBDAT & ~(LED2|LED4);
			Delay(500);
			} 
		}	
	else if( (rGPFDAT&(1<< 2)) == 0 )
		{while((rGPFDAT&(1<< 0))&&(rGPGDAT&(1<< 3))&&(rGPGDAT&(1<< 11)) )
			{Uart_Printf("\n key No.2  \n");
			rGPBDAT = rGPBDAT & ~0x1e0|0x1e0;   //LED[8:5] => 1;
			Delay(500);
			rGPBDAT = rGPBDAT & ~(LED4);
			Delay(500);  
			rGPBDAT = rGPBDAT & ~(LED2);
			Delay(500);  
			rGPBDAT = rGPBDAT & ~(LED3);
			Delay(500);
			rGPBDAT = rGPBDAT & ~(LED1);
			Delay(500);  
			}
		}
	else if( (rGPGDAT&(1<< 3)) == 0 )
		{while((rGPFDAT&(1<< 0))&&(rGPFDAT&(1<< 2))&&(rGPGDAT&(1<< 11)) )
			{Uart_Printf("\n key No.3  \n");
			rGPBDAT = rGPBDAT & ~0x1e0|0x1e0;   //LED[8:5] => 1;
			Delay(500);
			rGPBDAT = rGPBDAT & ~(LED4);
			Delay(500);  
			rGPBDAT = rGPBDAT & ~(LED3)|(LED4);
			Delay(500);  
			rGPBDAT = rGPBDAT & ~(LED2)|(LED3)|(LED4);
			Delay(500);
			rGPBDAT = rGPBDAT & ~(LED1)|(LED2)|(LED3)|(LED4);
			Delay(500);  
			}
      		} 
	else if( (rGPGDAT&(1<<11)) == 0 )
		{while((rGPFDAT&(1<< 0))&&(rGPGDAT&(1<< 3))&&(rGPFDAT&(1<< 2)) )
			{Uart_Printf("\n key No.4  \n");
			rGPBDAT = rGPBDAT & ~0x1e0|0x1e0;   //LED[8:5] => 1;
			Delay(500);
			rGPBDAT = rGPBDAT & ~(LED1|LED3|LED2|LED4);
			Delay(500);
			}
		}
	else
		{while((rGPFDAT&(1<< 0))&&(rGPFDAT&(1<< 2))&&(rGPGDAT&(1<< 11)) )
			{Uart_Printf("\n key default  \n");
			rGPBDAT = rGPBDAT & ~0x1e0|0x1e0;   //LED[8:5] => 1;
			Delay(500);
			rGPBDAT = rGPBDAT & ~(LED3|LED1);
			Delay(500);  
			rGPBDAT = rGPBDAT & ~(LED1)|(LED3);
			Delay(500);  
			rGPBDAT = rGPBDAT & ~(LED2|LED4)|(LED3)|(LED1);
			Delay(500);
			rGPBDAT = rGPBDAT & ~(LED4)|(LED2)|(LED3)|(LED1);
			Delay(500);  
			}
		}
 	}
 Uart_Printf("\n TQ  LED  Test  END\n");
}


/*
void LEDTEST(void)            // led test only, just add to main menu,that will be ok . lci
{
	#define LED1    (1<<5)   // rGPB[5] =1 ;
	#define LED2    (1<<6)   // rGPB[5] =1 ;
	#define LED3    (1<<7)   // rGPB[5] =1 ;
	#define LED4    (1<<8)   // rGPB[5] =1 ;
  	rGPBUP = rGPBUP & ~0x03f0|0x03f0;   //  LED [8:5] => PU En
	rGPBCON = rGPBCON & ~0x3d57ff|0x3d57ff;  //LED[8:5] => OUTPUT;
Uart_Printf("\n TQ LED Test start \n");
while( Uart_GetKey() != ESC_KEY )
	{

	rGPBDAT = rGPBDAT & ~0x1e0|0x1e0;   //LED[8:5] => 1;
	Delay(1500);
	rGPBDAT = rGPBDAT & ~(LED1|LED3);
	Delay(1500);  
	rGPBDAT = rGPBDAT & ~(LED2|LED4);
	Delay(1500);
   	}
}
*/

⌨️ 快捷键说明

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