Exemplo n.º 1
0
Arquivo: main.c Projeto: fantasea/APRS
int main(void)
{
	init();

	LOG_INFO("\r\n== BeRTOS TNC\r\n");
	LOG_INFO("== Starting.\r\n");
	kfile_printf(&ser_port.fd, "\r\n== BeRTOS TNC\r\n");
	kfile_printf(&ser_port.fd, "== Starting.\r\n" );

	while (1) {
		ax25_poll(&ax25);

		if (ax25.dcd) {
			LED_BLUE_ON();
		} else {
			LED_BLUE_OFF();
		}

		if (afsk.sending) {
			LED_GREEN_ON();
		} else {
			LED_GREEN_OFF();
		}
		
		kiss_serial_poll();
		kiss_queue_process();
	}

	return 0;
}
Exemplo n.º 2
0
void vBlinkerRequest(uint8_t cmd)
{
    switch (cmd & CMD_MASK)
    {
        case CMD_LED_ON:
            switch (cmd & LED_MASK)
            {
                case LED_RED:
                    LED_RED_ON();
                    break;
                case LED_GREEN:
                    LED_GREEN_ON();
                    break;
                case LED_BLUE:
                    LED_BLUE_ON();
                    break;
                case LED_ALL:
                    LEDS_ON();
                    break;
            }
            break;

        case CMD_LED_OFF:
            switch (cmd & LED_MASK)
            {
                case LED_RED:
                    LED_RED_OFF();
                    break;
                case LED_GREEN:
                    LED_GREEN_OFF();
                    break;
                case LED_BLUE:
                    LED_BLUE_OFF();
                    break;
                case LED_ALL:
                    LEDS_OFF();
                    break;
            }
            break;
        case CMD_LED_TOGGLE:
            switch (cmd & LED_MASK)
            {
                case LED_RED:
                    LED_RED_TOGGLE();
                    break;
                case LED_GREEN:
                    LED_GREEN_TOGGLE();
                    break;
                case LED_BLUE:
                    LED_BLUE_TOGGLE();
                    break;
                case LED_ALL:
                    LED_RED_TOGGLE();
                    LED_GREEN_TOGGLE();
                    LED_BLUE_TOGGLE();
                    break;
            }
            break;
    }
}
Exemplo n.º 3
0
/** Toggles LED
 * @param n iIndex of the LED to toggle. Red LED as index 0, green one 1 and blue one 2.
 */
void toggle_led( uint16_t n )
{
	led_state ^= (1 << n);

	if(led_state & 0x1) LED_RED_ON(); else LED_RED_OFF();
	if(led_state & 0x2) LED_GREEN_ON(); else LED_GREEN_OFF();
	if(led_state & 0x4) LED_BLUE_ON(); else LED_BLUE_OFF();
}
Exemplo n.º 4
0
void led_change( void )
{
  LEDS_OFF();
  switch (led_state)
    {
    case 0: LED_RED_ON();   break;
    case 1: LED_GREEN_ON(); break;
    case 2: LED_BLUE_ON();  break;
    case 3: LEDS_ON();    break;
    }
  led_state = (led_state + 1) & 0x3;
}
Exemplo n.º 5
0
static uint16_t slot_alarm(void) {
    slot_count++;
    if (slot_count>CTRL_SLOT) {
        // beacon
        slot_count = BEACON_SLOT;
        beacon_send();
    } else if (slot_count<=DATA_SLOT_MAX) {
        // dataslot
        cc1101_gdo0_register_callback(slot_data);

    } else {
        // controlslot
        LED_GREEN_OFF();
        LED_BLUE_ON();
        cc1101_gdo0_register_callback(slot_control);

    }
    return 0;
}
/* Main function */
int main(void)
{
    int value_mg_x, value_mg_y, value_mg_z;

    /* setup all GPIOs */
    gpio_setup();

    /* initialise LIS3DSH */
    lis3dsh_init();

    /* infinite loop */
    while (1) {
        /* get X, Y, Z values */
        value_mg_x = ((lis3dsh_read_reg(ADD_REG_OUT_X_H) << 8) |
                      lis3dsh_read_reg(ADD_REG_OUT_X_L));
        value_mg_y = ((lis3dsh_read_reg(ADD_REG_OUT_Y_H) << 8) |
                      lis3dsh_read_reg(ADD_REG_OUT_Y_L));
        value_mg_z = ((lis3dsh_read_reg(ADD_REG_OUT_Z_H) << 8) |
                      lis3dsh_read_reg(ADD_REG_OUT_Z_L));

        /* transform X value from two's complement to 16-bit int */
        value_mg_x = two_compl_to_int16(value_mg_x);
        /* convert X absolute value to mg value */
        value_mg_x = value_mg_x * SENS_2G_RANGE_MG_PER_DIGIT;

        /* transform Y value from two's complement to 16-bit int */
        value_mg_y = two_compl_to_int16(value_mg_y);
        /* convert Y absolute value to mg value */
        value_mg_y = value_mg_y * SENS_2G_RANGE_MG_PER_DIGIT;

        /* transform Z value from two's complement to 16-bit int */
        value_mg_z = two_compl_to_int16(value_mg_z);
        /* convert Z absolute value to mg value */
        value_mg_z = value_mg_z * SENS_2G_RANGE_MG_PER_DIGIT;

        /* set X related LEDs according to specified threshold */
        if (value_mg_x >= LED_TH_MG) {
            LED_BLUE_OFF();
            LED_ORANGE_OFF();
            LED_GREEN_OFF();
            LED_RED_ON();
        } else if (value_mg_x <= -LED_TH_MG) {
            LED_BLUE_OFF();
            LED_ORANGE_OFF();
            LED_RED_OFF();
            LED_GREEN_ON();
        }

        /* set Y related LEDs according to specified threshold */
        if (value_mg_y >= LED_TH_MG) {
            LED_BLUE_OFF();
            LED_RED_OFF();
            LED_GREEN_OFF();
            LED_ORANGE_ON();
        } else if (value_mg_y <= -LED_TH_MG) {
            LED_RED_OFF();
            LED_GREEN_OFF();
            LED_ORANGE_OFF();
            LED_BLUE_ON();
        }

        /* set Z related LEDs according to specified threshold */
        if (value_mg_z >= LED_TH_MG) {
            LED_BLUE_ON();
            LED_ORANGE_ON();
            LED_RED_ON();
            LED_GREEN_ON();
        } else if (value_mg_z <= -LED_TH_MG) {
            LED_BLUE_OFF();
            LED_ORANGE_OFF();
            LED_RED_OFF();
            LED_GREEN_OFF();
        }
    }

    return 0;
}