Files @ b22a378398b3
Branch filter:

Location: seniordesign-firmware/master/master/lib/led.h

ethanzonca@CL-ENS241-08.cedarville.edu
fixed configuration issues
/*
 * Master Firmware: Status and Error LED Handler
 *
 * Wireless Observational Modular Aerial Network
 * 
 * Ethan Zonca
 * Matthew Kanning
 * Kyle Ripperger
 * Matthew Kroening
 *
 */


#ifndef LED_H_
#define LED_H_

#include <avr/io.h>
#include <stdbool.h>

enum leds {
	LED_ACT0 = 0,
	LED_ACT1,
	LED_ACT2,
	LED_ACT3,
	
	LED_POWER,
	LED_STATUS,
	LED_ERROR,
	LED_SIDEBOARD,
	LED_ACTIVITY,
	LED_CYCLE,
	LED_HEAT,
	LED_BUZZ,
};

typedef struct {volatile uint8_t* direction; volatile uint8_t* port; uint8_t pin;} led_t;

// Match order of leds enum
static led_t ledList[] = {
	{&DDRA, &PORTA, PA1}, // ACT0
	{&DDRA, &PORTA, PA2}, // ACT1
	{&DDRA, &PORTA, PA3}, // ACT2
	{&DDRA, &PORTA, PA4}, // ACT3

	{&DDRB, &PORTB, PB4}, // POWER
	{&DDRB, &PORTB, PB3}, // STATUS
	{&DDRB, &PORTB, PB2}, // ERROR

	{&DDRD, &PORTD, PD6}, // SIDEBOARD
	{&DDRD, &PORTD, PD5}, // ACTIVITY
	{&DDRD, &PORTD, PD4}, // CYCLE
	
	{&DDRA, &PORTA, PA6}, // HEAT
	{&DDRA, &PORTA, PA7}, // BUZZER
};

#define NUM_LEDS 12

void led_setup();
void led_power_toggle();
void led_on(uint8_t led);
void led_off(uint8_t led);
void led_toggle(uint8_t led);
void led_blackout();
bool led_isBlackout();
void led_errorcode(uint8_t code);
void led_spin();
void led_alert();

#endif /* LED_H_ */