Commit Graph

206 Commits

Author SHA1 Message Date
e5ed029cfd fix(ir-dma): __DSB() barriers before DMA arm and after circular refill (#8)
Перестраховка корректности (на M4F без D-кэша обычно не обязательно): завершить запись dmaBuf/BSRR до HAL_DMA_Start_IT и refill полубуфера до прохода циркулярного DMA.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 14:12:28 +03:00
55935b8b92 fix(ir-dma): volatile active + errorCount() observability; live poll() in longData example
- IrDmaTxStm32.h: TxStream::active -> volatile (делится поток<->ISR: busy()/poll()/колбэки/спин applyCarrierMultiply)
- IrDmaTxStm32.h: + volatile errors_ и errorCount(), инкремент в dmaErrorCb (наблюдаемость Transfer-Error)
- test_examples/longData: dmaBackend.poll() в loop, иначе watchdog завершения DMA мёртв в эталонном примере

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 12:25:36 +03:00
7176fe5321 fix(ir-dma): eliminate isSending latch — free-running TIM, completion watchdog, busy() OR
C: remove racy activeCount_ + shared-timer gating; TIM17 free-running, per-stream DMA arming only (HAL_DMA_Start_IT/Abort_IT). Sets active before arming; never stops TIM on a shared counter.

D: poll() watchdog detects ticksOutput stall (>=stallTimeoutMs_, default 100ms) and forceStop()s the stuck stream under a per-channel NVIC mask; recoveryCount()/setStallTimeoutMs() accessors. dmaErrorCb now checks !active for symmetric single-stop.

E: busy() now returns true if ANY stream active (was AND) — honest contract for irAnyTxBusy()/carrier retune; does not serialize the send path.

Bug: IR TX rarely latched (LED frozen on/off) because stopStream was reachable only from the DMA HT/CPLT IRQ. Hardware bring-up (logic analyzer, recoveryCount telemetry) pending.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 15:26:52 +03:00
9935ac192a Merge pull request #11 from Show-maket/fix-DMA-and-Analyzer
Fix dma and analyzer
2026-04-21 07:05:29 +00:00
8361828c44 tx error tracking and inline glitch filter 2026-04-21 10:00:46 +03:00
38d93edd1b upd 2026-04-20 17:47:33 +03:00
2f5b57680b Add documentation for IR TX modes in the library 2026-04-20 14:49:38 +03:00
31ac7a3625 Refactor IR decoder and encoder for improved pulse filtering and ISR handling. Removed unused filtered sub-buffer, updated pulse filter methods, and added support for buffered ISR storage in the encoder. Enhanced documentation for clarity on DMA TX backend and ISR modes. 2026-04-20 14:48:45 +03:00
b4f644c258 Align main with fix-DMA-and-Analyzer (encoder API, sketch, .gitignore)
Restore IR_SendResult + sendDataFULL, fix IR-protocol.ino, match .gitignore to analyzer branch.

Made-with: Cursor
2026-04-17 15:07:54 +03:00
a75fd0c564 Merge branch 'main' of https://github.com/Show-maket/IR-protocol 2026-04-17 14:31:32 +03:00
4061a4ed10 Merge pull request #10 from Show-maket/fix-DMA-and-Analyzer
Fix dma and analyzer
2026-04-17 11:29:56 +00:00
01a34ed3f7 Merge pull request #9 from Show-maket/opti-dma-enc-power
add brightness controll
2026-04-17 06:47:16 +00:00
d788358ac8 add brightness controll 2026-04-17 09:45:32 +03:00
8daff9c46a fix timer overflow? 2026-04-15 11:00:48 +03:00
8631f23b53 fix overflow and mute 2026-04-14 09:36:27 +03:00
ad1e16cfda common fsm 2026-04-13 14:45:38 +03:00
57f79b35c7 fix longPacket sync_bit 2026-04-13 14:44:18 +03:00
f8daa68381 analyzer debug 2026-04-13 10:29:39 +03:00
ddb8a9e143 Filters and stable 2026-04-08 16:11:10 +03:00
c29fe2cf7c Analyzer 2026-04-07 15:08:02 +03:00
7651f07e0a Analyzer plug 2026-04-07 13:25:55 +03:00
e7d7c0e1c1 dma fix priority and debug 2026-04-02 17:25:10 +03:00
af3e012aac fix msgTypeReceive and isReceive 2026-03-30 13:34:04 +03:00
fc93ea41db Merge pull request #8 from Show-maket/STM32
Stm32
2026-03-11 17:06:20 +03:00
0620d98e35 Merge branch 'main' into STM32 2026-03-11 17:06:06 +03:00
4caed06218 Merge pull request #7 from Show-maket/STM32DMA
upd
2026-03-11 16:59:08 +03:00
fc1a3bacef upd 2026-03-11 16:57:55 +03:00
8a0d7f8dba carrierPauseIfIdle/carrierResume 2026-02-06 16:06:23 +03:00
d1c84ba18a no grammar fix 2025-10-17 17:28:01 +03:00
e9c568aed2 grammar fix 2025-10-17 17:25:09 +03:00
7bf71d1d52 calculateSendTime (need to fix) 2025-09-05 18:24:19 +03:00
38f3ecac3a isBusy 2025-08-25 13:01:58 +03:00
dec8467280 max pack 2025-08-22 15:33:19 +03:00
bc9563fbb5 isReceive type 2025-05-23 11:43:51 +03:00
021e1e290d fix isRX flag 2025-05-22 12:08:22 +03:00
89d14919c9 fix isRecive 2025-03-12 16:15:35 +03:00
403b8e6850 isRecive fix 2025-03-12 15:38:33 +03:00
d0c3138c52 Merge pull request #6 from Show-maket/STM32-opti-test
Stm32 opti test
2025-03-06 17:07:13 +03:00
2d839d3ff8 HardwareTimer auto set support 2025-03-06 17:05:37 +03:00
6ba8fdffe4 auto begin 2025-02-25 18:05:10 +03:00
aa0b478229 faster for each 2025-02-25 15:17:09 +03:00
277985f79a update ir adress space 2025-01-30 16:17:45 +03:00
444b84c313 hide test prints 2025-01-28 17:43:46 +03:00
2db1ef7805 test 2025-01-28 12:59:53 +03:00
1353ab6f75 constexpr IR_ResponseDelay 2025-01-28 12:59:42 +03:00
d1cb167aaf no define 2025-01-23 09:41:10 +03:00
30ad816c2a fix redifinded 2025-01-22 17:31:14 +03:00
ecfb3b5f98 downgrade 2025-01-17 19:11:05 +03:00
70a22463ef Merge pull request #5 from Show-maket/G431K-test
enable/disable update
2025-01-16 17:54:33 +03:00
71f58a4992 Revert "Update IR-protocol.ino"
This reverts commit 79bb804bb4.
2025-01-16 17:53:05 +03:00