41 lines
651 B
C
41 lines
651 B
C
#include "config.h"
|
|
#include "led.h"
|
|
#include "timer.h"
|
|
|
|
int16_t __led_pattern;
|
|
|
|
/* Debug LED */
|
|
void TISR_HANDLER(6)
|
|
{
|
|
timer_clear_txif(6);
|
|
|
|
if (__led_pattern == -1)
|
|
return;
|
|
|
|
__led_pattern <<= 1;
|
|
if (__led_pattern & 0x100) {
|
|
PORTBbits.RB13 = 0; /* on */
|
|
__led_pattern |= 1;
|
|
} else {
|
|
PORTBbits.RB13 = 1; /* off */
|
|
}
|
|
|
|
__led_pattern &= 0xff;
|
|
}
|
|
|
|
void led_init(void)
|
|
{
|
|
TRISBbits.TRISB13 = 0;
|
|
PORTBbits.RB13 = 1;
|
|
__led_pattern = -1;
|
|
|
|
timer_setup_16bit(6, LED_BLINK_RATE, 1);
|
|
timer_set_priority(6, 1); /* low priority */
|
|
}
|
|
|
|
/* Set a pattern (8-bit binary pattern). */
|
|
void led_pattern(uint8_t pattern)
|
|
{
|
|
__led_pattern = pattern;
|
|
}
|