// Entry point void c_main(void) { // Initialise uint32_t timer_period = 0; if (!initialize(&timer_period)) { log_error("Error in initialisation - exiting!"); rt_error(RTE_SWERR); } // Initialise the incoming spike buffer if (!in_spikes_initialize_spike_buffer(8192)) { return; } // Set timer_callback spin1_set_timer_tick(timer_period); // Register callbacks spin1_callback_on(MC_PACKET_RECEIVED, incoming_spike_callback, MC); spin1_callback_on(TIMER_TICK, timer_callback, TIMER); // Start the time at "-1" so that the first tick will be 0 time = UINT32_MAX; simulation_run(timer_callback, TIMER); }
// Entry point void c_main(void) { // Initialise uint32_t timer_period = 0; if (!initialize(&timer_period)) { log_error("Error in initialisation - exiting!"); rt_error(RTE_SWERR); } // Start the time at "-1" so that the first tick will be 0 time = UINT32_MAX; // Initialize the incoming spike buffer if (!in_spikes_initialize_spike_buffer(256)) { rt_error(RTE_SWERR); } // Set timer tick (in microseconds) spin1_set_timer_tick(timer_period); // Register callbacks spin1_callback_on(MC_PACKET_RECEIVED, incoming_spike_callback, -1); spin1_callback_on(USER_EVENT, spike_process, 1); spin1_callback_on(TIMER_TICK, timer_callback, 2); log_info("Starting"); simulation_run(); }