Esempio n. 1
0
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void init(void)
{
	play_led_en();
	play_led_off();

	dbg_led_en();
	dbg_led_on();

	// initialize effects
	sfx_init();

	// initialize SPI EEPROM support
	spie_init();

	// initialize USART
	uart_init();

	// setup the UART receive interrupt handler
	uartBeginReceive(&receiveCallback);

	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	// establish event timer & handler
	// timer1, event timer
	// Set CTC mode (Clear Timer on Compare Match) (p.133)
	// Have to set OCR1A *before anything else*, otherwise it gets reset to 0!
	PRR		&=	~(1<<PRTIM1);
	OCR1A	=	(F_CPU / SAMPLE_RATE);
	TCCR1A	=	0;
	TCCR1B	=	(1<<WGM12) |	// CTC
				(1<<CS10);
	TIMSK1	=	(1<<OCIE1A);

	setTimeBase(SAMPLE_RATE);

	// setup sleep mode
	set_sleep_mode(SLEEP_MODE_PWR_DOWN);
	sleep_enable();

	// setup switch input
	SWITCH_DDR		&= ~(1<<SWITCH_PIN);
	SWITCH_PINS		|= (1<<SWITCH_PIN);
	SWITCH_PCMSK	|= (1<<SWITCH_PCINT);
	PCICR			|= (1<<SWITCH_PCICR);


	registerHighPriorityEvent(fadeStatusLed, 0, EVENT_STATE_NONE);
	registerEvent(readNextStatusVal, 500, EVENT_STATE_NONE);

	// enable all interrupts
	sei();
}
Esempio n. 2
0
File: main.c Progetto: coapie/PieBox
int main(int argc, char *argv[]){
    char *rdir;
    short port = SERVER_DEFAULT_PORT;
    int rc;

#if 1
    if(argc < 2){
        usage();
        return -1;
    }
    rdir = argv[1];

    rc = stat(rdir, &rs);
    if(rc != 0){
        usage();
        return -1;
    }

    if(argc > 2){
        port = (short)atoi(argv[2]);
    }
#else
    rdir = "/opt/PieBox";
#endif
    logger_init();

    rc = spie_init(&__sp);
    if(rc != 0){
        log_warn("init sharepie struct fail!\n");
        return -1;
    }

    rc = spie_set_param(&__sp, rdir, port);
    if(rc != 0){
        log_warn("set sharepie param fail:%d\n", rc);
        return -1;
    }

    spie_start(&__sp, 0);

    return 0;
}