B10A_router_leds.c

00001 #include <includes.h>
00002 
00003 //Global LED blink variables
00004 volatile unsigned short b10a_red_can1_time = 0, b10a_green_can1_time = 0;
00005 volatile unsigned short b10a_red_can2_time = 0, b10a_green_can2_time = 0;
00006 volatile unsigned short b10a_red_can3_time = 0, b10a_green_can3_time = 0;
00007 volatile unsigned short b10a_red_can4_time = 0, b10a_green_can4_time = 0;
00008 
00009 volatile unsigned short b10a_red_mcu_time = 0, b10a_green_mcu_time = 0, b10a_blue_mcu_time = 0;
00010 
00011 //CAN bus loading globals
00012 volatile short unsigned int b10a_can1_packet_rate = 0;
00013 volatile short unsigned int b10a_can2_packet_rate = 0;
00014 volatile short unsigned int b10a_can3_packet_rate = 0;
00015 volatile short unsigned int b10a_can4_packet_rate = 0; 
00016 
00018 void b10a_can_packet_count(unsigned short chan)
00019 {
00020   if      (chan == 1) {++b10a_can1_packet_rate;}
00021   else if (chan == 2) {++b10a_can2_packet_rate;}
00022   else if (chan == 3) {++b10a_can3_packet_rate;}
00023   else if (chan == 4) {++b10a_can4_packet_rate;}
00024 }
00026 
00028 void b10a_update_mcu_leds(void)
00029 {
00030 /*
00031   if (FIO1PIN & 25) //ARM9 controls MCU G/R LEDs while blue LED is off
00032   {
00033     if (FIO0PIN & 1<<15)     //LPC3250 GPIO_0
00034     {
00035      MCU_LED_GREEN_ON;    //turn on green ARM7 MCU LED
00036     }
00037     else
00038     {
00039      MCU_LED_GREEN_OFF;    //turn off green ARM7 MCU LED
00040     }
00041 
00042     if (FIO0PIN & 1<<16)     //LPC3250 GPIO_1
00043     {
00044       MCU_LED_RED_ON;     // turn on red MCU LED
00045     }
00046     else
00047     {
00048       MCU_LED_RED_OFF;    // turn off red MCU LED
00049     }  
00050   }
00051   else  //ARM7 controls MCU G/R LEDs while blue LED is on
00052   */  // *** test code
00053   
00054   {
00055     if (b10a_red_mcu_time > 0)
00056     {
00057       --b10a_red_mcu_time;
00058       MCU_LED_RED_ON;
00059     }
00060     else
00061     {
00062       MCU_LED_RED_OFF;
00063     }
00064   
00065     if (b10a_green_mcu_time > 0)
00066     {
00067       --b10a_green_mcu_time;
00068       MCU_LED_GREEN_ON;
00069     }
00070     else
00071     {
00072       MCU_LED_GREEN_OFF;
00073     }
00074     
00075     if (b10a_blue_mcu_time > 0)
00076     {
00077       --b10a_blue_mcu_time;
00078       MCU_LED_BLUE_ON;
00079     }
00080     else
00081     {
00082       MCU_LED_BLUE_OFF;
00083     }
00084     
00085   }
00086 }
00088 
00090 
00091 void b10a_blink_red_can_led(unsigned short chan)
00092 {
00093   const unsigned short red_blink_time = 50;   // LEDs will flash for time = to 50 function calls of LED update
00094   
00095   if      (chan == 1) {b10a_red_can1_time = red_blink_time;}
00096   else if (chan == 2) {b10a_red_can2_time = red_blink_time;}
00097   else if (chan == 3) {b10a_red_can3_time = red_blink_time;}
00098   else if (chan == 4) {b10a_red_can4_time = red_blink_time;}
00099 }
00100 
00101 void b10a_blink_green_can_led(unsigned short chan)
00102 {
00103   const unsigned short green_blink_time = 50;   // LEDs will flash for time = to 50 function calls of LED update
00104   
00105   if      (chan == 1) {b10a_green_can1_time = green_blink_time;}
00106   else if (chan == 2) {b10a_green_can2_time = green_blink_time;}
00107   else if (chan == 3) {b10a_green_can3_time = green_blink_time;}
00108   else if (chan == 4) {b10a_green_can4_time = green_blink_time;}
00109 }
00110 
00111 void b10a_mcu_red_led_blink(short unsigned int time)
00112 {
00113   b10a_red_mcu_time = time;
00114 }
00115 
00116 void b10a_mcu_green_led_blink(short unsigned int time)
00117 {
00118   b10a_green_mcu_time = time;
00119 }
00120 
00121 void b10a_mcu_blue_led_blink(short unsigned int time)
00122 {
00123   b10a_blue_mcu_time = time;
00124 }
00125 
00126 
00128 void b10a_update_can_leds(void)
00129 {
00130   static short unsigned int i = 0;
00131 
00132   if (b10a_red_can1_time > 0)
00133   {
00134     --b10a_red_can1_time;
00135     CAN1_LED_RED_ON;
00136   }
00137   else
00138   {
00139     CAN1_LED_RED_OFF;
00140   }
00141   
00142   if (b10a_green_can1_time > 0)
00143   {
00144     --b10a_green_can1_time;
00145     CAN1_LED_GREEN_ON;
00146   }
00147   else
00148   {
00149     CAN1_LED_GREEN_OFF;
00150   }
00151   
00152   if (b10a_red_can2_time > 0)
00153   {
00154     --b10a_red_can2_time;
00155     CAN2_LED_RED_ON;
00156   }
00157   else
00158   {
00159     CAN2_LED_RED_OFF;
00160   }
00161   
00162   if (b10a_green_can2_time > 0)
00163   {
00164     --b10a_green_can2_time;
00165     CAN2_LED_GREEN_ON;
00166   }
00167   else
00168   {
00169     CAN2_LED_GREEN_OFF;
00170   }
00171   
00172   if (b10a_red_can3_time > 0)
00173   {
00174     --b10a_red_can3_time;
00175     CAN3_LED_RED_ON;
00176   }
00177   else
00178   {
00179     CAN3_LED_RED_OFF;
00180   }
00181   
00182   if (b10a_green_can3_time > 0)
00183   {
00184     --b10a_green_can3_time;
00185     CAN3_LED_GREEN_ON;
00186   }
00187   else
00188   {
00189     CAN3_LED_GREEN_OFF;
00190   }
00191   
00192   if (b10a_red_can4_time > 0)
00193   {
00194     --b10a_red_can4_time;
00195     CAN4_LED_RED_ON;
00196   }
00197   else
00198   {
00199     CAN4_LED_RED_OFF;
00200   }
00201   
00202   if (b10a_green_can4_time > 0)
00203   {
00204     --b10a_green_can4_time;
00205     CAN4_LED_GREEN_ON;
00206   }
00207   else
00208   {
00209     CAN4_LED_GREEN_OFF;
00210   }
00211   
00212   
00213   //Light up green LEDs for a time proportional to CAN bus loading
00214   ++i;
00215   if (i >= 10)
00216   {
00217     i = 0;
00218     if (b10a_can1_packet_rate > 0){b10a_green_can1_time = (b10a_can1_packet_rate >> 3);}
00219     if (b10a_can2_packet_rate > 0){b10a_green_can2_time = (b10a_can2_packet_rate >> 3);}
00220     if (b10a_can3_packet_rate > 0){b10a_green_can3_time = (b10a_can3_packet_rate >> 3);}
00221     if (b10a_can4_packet_rate > 0){b10a_green_can4_time = (b10a_can4_packet_rate >> 3);}
00222     
00223     //Error checks - send error or warning if CAN loading too high
00224   
00225     //Reset packet rate/CAN loading variables
00226     b10a_can1_packet_rate = 0;
00227     b10a_can2_packet_rate = 0;
00228     b10a_can3_packet_rate = 0;
00229     b10a_can4_packet_rate = 0;     
00230   }    
00231 }
Generated on Tue Jun 29 16:36:14 2010 by  doxygen 1.6.3