From c6773e1436ba3adda0a6456dbe54ba1320a095be Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Tue, 23 Apr 2002 09:13:23 +0000 Subject: Moved driver to 'drivers' subdir git-svn-id: svn://svn.rockbox.org/rockbox/trunk@189 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/led.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 firmware/drivers/led.c (limited to 'firmware/drivers/led.c') diff --git a/firmware/drivers/led.c b/firmware/drivers/led.c new file mode 100644 index 0000000000..d01c9de612 --- /dev/null +++ b/firmware/drivers/led.c @@ -0,0 +1,70 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2002 by Alan Korr + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include "config.h" + +#include + +#define turn_on() \ + set_bit (LEDB,PBDR_ADDR+1) + +#define turn_off() \ + clear_bit (LEDB,PBDR_ADDR+1) + +#define start_timer() \ + set_bit (2,TSTR_ADDR) + +#define stop_timer() \ + clear_bit (2,TSTR_ADDR) + +#define eoi(subinterrupt) \ + clear_bit (subinterrupt,TSR2_ADDR) + +#define set_volume(volume) \ + GRA2 = volume & 0x7FFF + + +void led_set_volume (unsigned short volume) +{ + volume <<= 10; + if (volume == 0) + led_turn_off (); + else if (volume == 0x8000) + led_turn_on (); + else + { + set_volume (volume); + start_timer (); + } +} + +#pragma interrupt +void IMIA2 (void) +{ + turn_off (); + eoi (0); +} + +#pragma interrupt +void OVI2 (void) +{ + turn_on (); + eoi (2); +} + -- cgit v1.2.3