Can't display interrupt glyph because LEDs are interrupt driven

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1538 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2009-02-28 21:51:23 +00:00
parent 3b78e0a8f3
commit b5d1f70c77
2 changed files with 17 additions and 5 deletions
+1 -1
View File
@@ -55,7 +55,7 @@
#define LED_IRQSENABLED 2 /* 'E' N/A */ #define LED_IRQSENABLED 2 /* 'E' N/A */
#define LED_STACKCREATED 3 /* 'C' N/A */ #define LED_STACKCREATED 3 /* 'C' N/A */
#define LED_IDLE 4 /* 'R' N/A */ #define LED_IDLE 4 /* 'R' N/A */
#define LED_INIRQ 5 /* 'I' (previous) */ #define LED_INIRQ 5 /* (ignored) (ignored) */
#define LED_ASSERTION 6 /* 'A' (previous) */ #define LED_ASSERTION 6 /* 'A' (previous) */
#define LED_SIGNAL 7 /* 'S' (previous) */ #define LED_SIGNAL 7 /* 'S' (previous) */
#define LED_PANIC 8 /* '*' (previous) */ #define LED_PANIC 8 /* '*' (previous) */
+15 -3
View File
@@ -1,7 +1,7 @@
/**************************************************************************** /****************************************************************************
* configs/ez80f910200zco/src/ez80_leds.c * configs/ez80f910200zco/src/ez80_leds.c
* *
* Copyright (C) 2008 Gregory Nutt. All rights reserved. * Copyright (C) 2008, 2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr> * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -200,6 +200,7 @@ static const ubyte *g_prevglyph = g_chspace;
static ubyte g_anodecol = 1; static ubyte g_anodecol = 1;
static ubyte g_cathoderow = 0; static ubyte g_cathoderow = 0;
static sbyte g_intcount = 0;
/**************************************************************************** /****************************************************************************
* Private Functions * Private Functions
@@ -252,8 +253,8 @@ void up_ledon(int led)
break; break;
case LED_INIRQ: case LED_INIRQ:
g_currglyph = g_chI; g_intcount++;
break; return;
case LED_ASSERTION: case LED_ASSERTION:
g_currglyph = g_chA; g_currglyph = g_chA;
@@ -279,9 +280,20 @@ void up_ledon(int led)
****************************************************************************/ ****************************************************************************/
void up_ledoff(int led) void up_ledoff(int led)
{
if (led == LED_INIRQ)
{
g_intcount--;
}
else if (led == LED_PANIC && g_intcount > 0)
{
g_currglyph = g_chI;
}
else
{ {
g_currglyph = g_prevglyph; g_currglyph = g_prevglyph;
} }
}
/**************************************************************************** /****************************************************************************
* Name: up_timerhook * Name: up_timerhook