turnOnDigit() function ready

git-svn-id: svn://anubis/misc/parapin-led@49 bd8a9e45-a331-0410-811e-c64571078777
This commit is contained in:
josh 2008-04-29 00:52:22 +00:00
parent 7aad302cb5
commit f8f1e2c732

45
led.c
View File

@ -1,22 +1,24 @@
#include <parapin.h> #include <parapin.h>
#define LED_A 2 #define LED_A LP_PIN02
#define LED_B 3 #define LED_B LP_PIN03
#define LED_C 4 #define LED_C LP_PIN04
#define LED_D 5 #define LED_D LP_PIN05
#define LED_E 6 #define LED_E LP_PIN06
#define LED_F 7 #define LED_F LP_PIN07
#define LED_G 8 #define LED_G LP_PIN08
#define LED_DP 9 #define LED_DP LP_PIN09
#define LED_1 17 #define LED_1 LP_PIN17
#define LED_2 16 #define LED_2 LP_PIN16
#define LED_3 14 #define LED_3 LP_PIN14
#define LED_POSITION_MASK (LED_1 | LED_2 | LED_3)
#define LED_ALL (LED_A | LED_B | LED_C | LED_D | LED_E | LED_F | LED_G | LED_DP | LED_1 | LED_2 | LED_3) #define LED_ALL (LED_A | LED_B | LED_C | LED_D | LED_E | LED_F | LED_G | LED_DP | LED_1 | LED_2 | LED_3)
int digit2leds[] = { int digit2pins[] = {
LED_B | LED_C, LED_B | LED_C,
LED_A | LED_B | LED_G | LED_E | LED_D, LED_A | LED_B | LED_G | LED_E | LED_D,
LED_A | LED_B | LED_G | LED_C | LED_D, LED_A | LED_B | LED_G | LED_C | LED_D,
@ -28,6 +30,14 @@ int digit2leds[] = {
LED_A | LED_B | LED_C | LED_D | LED_F | LED_G LED_A | LED_B | LED_C | LED_D | LED_F | LED_G
}; };
int position2pins[] = {
LED_1,
LED_2,
LED_3
};
void turnOnDigit(int digitPosition, int value);
int main int main
{ {
/* initialize the parapin user-land library */ /* initialize the parapin user-land library */
@ -36,3 +46,14 @@ int main
/* set up pins as output pins */ /* set up pins as output pins */
pin_output_mode(LED_ALL); pin_output_mode(LED_ALL);
} }
void turnOnDigit(int digitPosition, int value)
{
/* turn all pins off */
clear_pin(LED_ALL);
/* enable the positional pin */
register int pinSet = LED_POSITION_MASK & ~position2pins[digitPosition];
pinSet |= digit2pins[value];
set_pin(pinSet);
}