ご無沙汰しております。
interruptを使って、PWM入力のデューティー比を計測するという簡単なプログラムでハマりました。
IRAM_ATTRとかvolatileとか、Serial, delayを使わない、なんてのは当然やってます。でも、
- Interrupt wdt timeout on CPU1
- LoadProhibited
- Coprocessor exception
でrestartしちゃう。M5関連のコードを外してESP32 DevKitで動かしたり、structで定義していたものを単純変数に置き換えたり、メインループで使っているSoftwareSerialをHardwareSerialに変えてみたり。
何をやっても駄目。
最終的に動いたのですが……
対策は……浮動小数点を使わない……でした。
わけがわからないよ……。
私はESP32の割り込みで、switch文があるとだめで if ... else if .... else に書き換えたら動いた経験があります。
返信削除コメントありがとうございます。
削除えええ、それもまた見つけにくいですね。
まさかSwitchが関係するなんて思わないから、ずっと悩み続けそうです……。