int main(void) { // Разрешить светодиод arduino pro mini. DDRB |= _BV(DDB5); timer_init(); uart_async_init(); i2c_init(); queue_init(); init_int0(); // Разрешить прерывания. sei(); uart_readln(&commands_reciver); uart_writeln("start"); // Бесконечный цикл с энергосбережением. for(;;) { switch(queue_getTask()) { case DO_REQUEST_RTC_DATA_START : //Установть позицию на регистр 0x0 ds3231_buf[0] = 0; i2c_send(0xD0, ds3231_buf, 1, &callBackForRequestRtcData); break; case DO_REQUEST_RTC_DATA_END : //Читаем 7 байт i2c_recive(0xD0 + 1, ds3231_buf, 7, &callBackForRequestRtcData); break; case DO_TIMER1_OVF : i2c_init(); //queue_putTask(DO_REQUEST_RTC_DATA_START); timer1_doing = 0; break; case COMMAND_SEND_I2C : i2c_send(commands_reciver_param1[0], // Адресс. commands_reciver_param2, // Буфер. commands_reciver_param3[0], // Количество. &callBackForSendI2CData); break; case COMMAND_RECIVE_I2C : i2c_recive(commands_reciver_param1[0], // Адресс. ds3231_buf, // Буфер. commands_reciver_param3[0], // Количество. &callBackForReciveI2CData); break; default : sleep_mode(); } } return 0; }
int main() { irq_setmask(0); irq_enable(1); uart_async_init(); banner(); brd_init(); time_init(); mem_init(); vga_init(); snd_init(); tmu_init(); pfpu_init(); slowout_init(); hdlcd_init(); while(1); return 0; }
int main() { irq_setmask(0); irq_enable(1); uart_async_init(); uart_force_sync(1); banner(); brd_init(); time_init(); mem_init(); vga_init(); snd_init(); tmu_init(); pfpu_init(); music_start(); while(1) { intro_csv(); while(!(CSR_GPIO_IN & GPIO_DIP3)); } return 0; }
int main() { #ifdef EMULATION emu_init(); #endif irq_setmask(0); irq_enable(1); uart_async_init(); banner(); brd_init(); cpustats_init(); time_init(); mem_init(); vga_init(); snd_init(); pfpu_init(); tmu_init(); renderer_init(); apipe_init(); rpipe_init(); slowout_init(); hdlcd_init(); ui_init(); shell_init(); while(1) { if(readchar_nonblock()) shell_input(readchar()); apipe_service(); rpipe_service(); #ifdef EMULATION emu_service(); #endif } return 0; }