FS#9635 - On V1, V2 and FM Archos recorders, ensure instant backlight switch-off. (Formerly, backlight switch-off was unpredicrable on some of these devices. The backlight would either turn off instantly or brighten instantly and then fade.)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20707 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Boris Gjenero 2009-04-14 19:23:39 +00:00
parent 5b6af5e560
commit 0e74f75deb
3 changed files with 28 additions and 10 deletions

View file

@ -38,8 +38,6 @@ void rtc_init(void)
rtc_check_alarm_started(false);
#endif
rtc_write(0x13, 0x10); /* 32 kHz square wave */
/* Clear the Stop bit if it is set */
data = rtc_read(0x01);
if(data & 0x80)

View file

@ -28,14 +28,24 @@
static inline void _backlight_on(void)
{
/* Enable square wave */
rtc_write(0x0a, rtc_read(0x0a) | 0x40);
rtc_write(0x13, 0x10); /* 32 kHz square wave */
rtc_write(0x0a, rtc_read(0x0a) | 0x40); /* Enable square wave */
}
static inline void _backlight_off(void)
{
/* Disable square wave */
rtc_write(0x0a, rtc_read(0x0a) & ~0x40);
/* While on, backlight is flashing at 32 kHz. If the square wave output
is disabled while the backlight is lit, it will become constantly lit,
(brighter) and slowly fade. This resets the square wave counter and
results in the unlit state */
unsigned char rtc_0a = rtc_read(0x0a) & ~0x40;
rtc_write(0x0a, rtc_0a); /* Disable square wave */
rtc_write(0x13, 0xF0); /* 1 Hz square wave */
rtc_write(0x0a, rtc_0a | 0x40); /* Enable square wave */
/* When the square wave output is disabled in the unlit state,
the backlight stays off */
rtc_write(0x0a, rtc_0a);
}
#endif

View file

@ -28,14 +28,24 @@
static inline void _backlight_on(void)
{
/* Enable square wave */
rtc_write(0x0a, rtc_read(0x0a) | 0x40);
rtc_write(0x13, 0x10); /* 32 kHz square wave */
rtc_write(0x0a, rtc_read(0x0a) | 0x40); /* Enable square wave */
}
static inline void _backlight_off(void)
{
/* Disable square wave */
rtc_write(0x0a, rtc_read(0x0a) & ~0x40);
/* While on, backlight is flashing at 32 kHz. If the square wave output
is disabled while the backlight is lit, it will become constantly lit,
(brighter) and slowly fade. This resets the square wave counter and
results in the unlit state */
unsigned char rtc_0a = rtc_read(0x0a) & ~0x40;
rtc_write(0x0a, rtc_0a); /* Disable square wave */
rtc_write(0x13, 0xF0); /* 1 Hz square wave */
rtc_write(0x0a, rtc_0a | 0x40); /* Enable square wave */
/* When the square wave output is disabled in the unlit state,
the backlight stays off */
rtc_write(0x0a, rtc_0a);
}
#endif