Mission Command Layer(ミッション指令レイヤー)- Module 1: Startup and Igniter(起動・点火)Guidance & Navigation Control(誘導・航法・制御)- Module 2: Real Time Sensor(リアルタイム観測)- Module 3: Timeline Adjuster(時間軸補正)- Module 4: Feedback Uplinker(フィードバック上りリンク)Telemetry Downlink Receiver(テレメトリ下り処理)- Module 5: Data Telemetry Receiver(データ・テレメトリ)Timeline Dynamics Processor(時間軸動力学プロセッサ)- Module 6: Velocity Vector Stabilizer(速度ベクトル安定化)- Module 7: Timeline Interpolation(時間軸補間)- Module 8: Timeline Thruster(時間軸スラスター出力)
static void i2s_prime_and_enable(i2s_chan_handle_t handle) { // 監視パラメータ初期化 g_ddc.ddc_ring_looses = 0; g_ddc.ddc_ring_wl = 0.0f; g_ddc.ddc_rx_size = 0, g_ddc.ddc_tx_size = 0, // PCNTカウンタ初期化 normal_fscount(&g_cnt_ideal); // ノーマルポジションセット // Clock基準値初期化 g_cnt_ideal.last_fb = (1 << 14), // ★ Q14 の 1.0 g_cnt_ideal.acc_q14 = 0, g_cnt_ideal.delta_fb_q = 0, g_cnt_ideal.source_clock_ratio = 1.0f, // ★ ASRC 初期比率 // I2S発射台準備 g_ddc.i2s_starting = true; g_ddc.i2s_start_ms = xTaskGetTickCount(); g_ddc.counter_warmup_rollout = false; g_ddc.i2s_src_locked = false; g_ddc.i2s_src_lockcount = 0; g_ddc.i2s_src_phase_ratio = 1.0f; g_ddc.i2s_src_smooth_ratio = 1.0f; g_ddc.i2s_src_phase = 0; g_ddc.i2s_src_in_idx = 0; g_ddc.i2s_src_prev_consumed = -1; g_ddc.i2s_pcnt_delta_hz = 0; // UAC発車準備 g_ddc.uac_fb_inverval_count = 0; g_ddc.uac_fb_started = false; g_ddc.uac_fb_start_pending = true; // ← ここが重要 g_ddc.uac_fb_locked = false; g_ddc.uac_fb_lockcount = 0; g_ddc.uac_long_err_mHz = 0; // 前回再生までのバッファ残があればクリア rb_dropall(&g_audio_ring); // カウントタイマーリブート gptimer_stop(g_gptimer); gptimer_start(g_gptimer); // Now enable to start DMA i2s_channel_enable(handle);}