From e0f29d5815a7dd4d45733ce1d661f1df263913d4 Mon Sep 17 00:00:00 2001
From: chenlh <2008get@163.com>
Date: 星期四, 09 十月 2025 15:23:10 +0800
Subject: [PATCH] 第一轮测试OK版提交

---
 drv/FIR_acc.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drv/FIR_acc.c b/drv/FIR_acc.c
index bb94baa..eb25654 100644
--- a/drv/FIR_acc.c
+++ b/drv/FIR_acc.c
@@ -58,13 +58,20 @@
 		firHead.status = acc_completely;
 		firHead.count++;
 	}
+
+    if(firHead.status == acc_completely) {
+    	for(struct FIR_tcb* fir = firHead.first; fir != NULL ; fir = fir->next) {
+    		if(fir->callback) fir->callback(fir->content);
+    	}
+    	firHead.status = acc_idle;
+    }
 }
 
 uvoid fir_acc_init()
 {
 	firHead.count =0;
 	firHead.num =0 ;
-	firHead.status = acc_completely ;
+	firHead.status = acc_idle  ;
 	firHead.first = NULL;
 	firHead.last = NULL;
 
@@ -77,9 +84,9 @@
 {
 	s32 restarting = 0;
 
-	if(firHead.status == acc_completely && firHead.num > 0) {
+	if(firHead.status == acc_idle  && firHead.num > 0) {
 		for(struct FIR_tcb* fir = firHead.first; fir != NULL ; fir = fir->next) {
-			if(fir->callback) fir->callback(fir->content);
+
 			if(fir->cp_update) {
 				memcpy((uvoid*)fir->cf_buff, fir->cf_temp , fir->tap*sizeof(ufloat));
 				fir->cp_update = ufalse;
@@ -199,7 +206,7 @@
 		firHead.last->next = fir;
 		firHead.last = fir ;
 	}
-	//fir->tcb[0] =  ((s32)(firHead.first->tcb+12)>>2)|MP_OFFSET;
+
 	firHead.num ++;
 
 	return fir;

--
Gitblit v1.9.3