📄 led.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 + -