#解決したいこと
ArduinoでTeensy3.5の開発をしています。
Teensy3.5とOpenmvH7でSPI通信をしようとしていて、
Teensy3.5をslaveとして用いようとしています。
Arduino Unoでは、slaveとして用いる時に、Interrupt Service Routineを用いて以下のようにプログラムすることでslaveとして使うことができました。
c++
1#include <SPI.h> 2 3void setup() { 4 pinMode(MISO,OUTPUT); //MISOを出力 5 6 SPI.setBitOrder(MSBFIRST); //最上位ビット(MSB)から送信 7 SPI.setClockDivider(SPI_CLOCK_DIV4); //通信速度をデフォルト 8 SPI.setDataMode(SPI_MODE2); //アイドル5Vで0V→5Vの変化で送信する 9 SPCR |= _BV(SPE); 10 11 SPI.attachInterrupt(); 12} 13 14// SPI割り込み処理 15ISR(SPI_STC_vect) 16{ 17 byte ch = SPDR; //SPIの受信バッファから取得 18 SPDR = ch; //送信バッファに書き込む 19} 20 21void loop() { 22 // put your main code here, to run repeatedly: 23}
Arduino UnoはAVRのマイコンなのでこれで可能だったと思うのですが、
私の勘違いでなければ、Teensy3.5はArmのマイコンだからISRを用いることができていないのだと思われます。
Teensy3.5をslaveとしてSPI通信をする方法は何かありますか?
(できればSPI通信が来た時だけ値を受け取りたいですが、そうでなくても構いません。)
#調べた内容
PJRCのSPIライブラリのところを見ても、SPI通信のSLAVEを実行する方法は書いておらず、対応していないと書いてあります。
https://www.pjrc.com/teensy/td_libs_SPI.html
何か他の方法はありますか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/24 08:03