Renesas Rulz - Japan
Renesas Rulz - Japan
  • User
    Join or sign in
  • Site
  • Search Japan.RenesasRulz.com
  • User
  • Renesas Rulz
  • FAQ
  • パートナー
  • 半導体セミナ
  • eラーニング
  • ヘルプ
  • More
  • Cancel
がじぇっとるねさすコミュニティ
がじぇっとるねさすコミュニティ
GR-CITRUS μsec単位の周期処理は?
  • Forums
  • Blog
  • Files
  • がじぇっとるねさす ゆーざー会 - Wiki
  • Tags
  • More
  • Cancel
  • New

 

 GR-SAKURA

 GR-KURUMI

 GR-COTTON

 GR-CITRUS

 GR-PEACH

 GR-KAEDE

 GR-ADZUKI

 GR-LYCHEE

 GR-ROSE

 GR-MANGO(*)

 SNShield

 Web Compiler

 IDE for GR

 TOPPERS関連

 女子美コラボ

 その他

 ※プロデューサミーティング中

 作り方使い方資料

 イベント関連

 作品記事

 体験記事

 その他

 

 ライブラリ

 ツール

 その他・過去ファイル

  • State Not Answered
  • Replies 19 replies
  • Subscribers 435 subscribers
  • Views 23804 views
  • Users 0 members are here
  • gr-citrus
Options
  • Share
  • More
  • Cancel
Related Tags
  • DS18B20
  • gr-citrus
  • gr-sakura
  • i2c
  • IDE for GR
  • led
  • NeoPixel
  • WS8212B
  • 簡易オシロスコープ
Related

μsec単位の周期処理は?

maenoh!
maenoh! over 4 years ago

秋月の超小型シリコンマイクモジュール(SPU0414HR5H-SB使用)

http://akizukidenshi.com/catalog/g/gM-08940/

を使ってみようと思い、先ずはKURUMIの

attachMicroIntervalTimerHandler(test_cyclic_handler, 100);

で試しました。100us周期処理なので、「あ」の波形もそこそこ綺麗にサンプリングできました。

これをCITURSに移植しようとしたところ、エラーになりました。

us単位の周期処理はサポートされていないのでしょうか?

仕方なく

     MsTimer2::set(1, test_cyclic_handler); // 1ms period

を使ってみましたが予想通り残念な結果でした。

波形:上がKURUMIの100us周期処理、下がCITURSの1ms周期処理

  • Reply
  • Cancel
  • Cancel
Parents
  • fujita nozomu
    0 fujita nozomu over 4 years ago

    GR-SAKURA の MsTimer2 に μ秒単位でタイマー割り込みを指定できる setMicros() と PCLK(=48MHz)単位で指定できる setPCLK() を追加してみました。

    使い方はだいたいこんな感じです。

    /* GR-SAKURA Sketch Template V2.13 */
    #include 
    #include 
    
    volatile uint32_t count = 0;
    
    void timer()
    {
        count++;
    }
    
    void setup()
    {
        Serial.begin(9600);
    #if 0   // 1ms 毎に割り込み
        MsTimer2::set(1, timer);
    #elif 0 // 100us 毎に割り込み
        MsTimer2::setMicros(100, timer);
    #else   // 10kHz で割り込み
        MsTimer2::setPCLK(PCLK / 10000, timer);
    #endif
        MsTimer2::start();
    }
    
    void loop()
    {
        Serial.println(count);
        delay(1000);
    }
    

    GR-CITRUS は持っておらず確認等しておりませんが、まあ似たようなもんじゃないかと思うので試されてみてはいかがでしょうか。

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • maenoh!
    0 maenoh! over 3 years ago in reply to fujita nozomu

    fujitaさん、ありがとうございます。

    F_CPUが定義されていないようだったので

    MsTimer2.hの一部を以下のように変更(CITRUSのオリジナルから移植)したら正常に動作しました。

    #if defined (GRSAKURA)
    #define F_CPU 48000000 //PCLK is 48MHz, CPU is operating at 96MHz
    #else
    #include <avr/interrupt.h>
    #endif

    お陰様で100us周期で音声波形が取り込めました。秋月のマイクも小さくて使いやすいので色々作品が作れそうです。

    残念ながら、MP3再生用のWavMp3p.hとは同時に使えないみたいですが。

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • fujita nozomu
    0 fujita nozomu over 3 years ago in reply to maenoh!
    F_CPUが定義されていないようだったので

    MsTimer2.hの一部を以下のように変更(CITRUSのオリジナルから移植)したら正常に動作しました。

    #if defined (GRSAKURA)
    #define F_CPU 48000000 //PCLK is 48MHz, CPU is operating at 96MHz
    #else
    #include <avr/interrupt.h>
    #endif

    F_CPU は Arduino.h で

    #define F_CPU (96 * 1000 * 1000)
    

    と定義されており再定義は不要な筈です。そもそも MsTimer2 で使用しているタイマは 48MHz の PCLK で動作しており F_CPU は関係ありません。

    改変前の GR-SAKURA 版 MsTimer2 では元となった AVR 版では CPU クロックとペリフェラルクロックの区別がないためか CPU クロックの F_CPU とペリフェラルクロックの PCLK を混同しており、Arduino.h で (96 * 1000 * 1000) と定義されている F_CPU が MsTimer2.h をインクルードした後では (48 * 1000 * 1000) に再定義されるというわけの分からないことになっていましたが、今回投稿したものではその点を改めています。PCLK を使用したい場合は Arduino.h をインクルードしてください。

    残念ながら、MP3再生用のWavMp3p.hとは同時に使えないみたいですが。

    見ていませんが、恐らくは同じタイマを使用しているのだと思います。WavMp3p の改変が必要でしょう。

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • maenoh!
    0 maenoh! over 3 years ago in reply to fujita nozomu
    詳しい説明、ありがとうございます。
    標準ライブラリへの反映やMP3再生との両立(切替)を含めてOkamiyaさんにお願いするしかなさそうですね。
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
Reply
  • maenoh!
    0 maenoh! over 3 years ago in reply to fujita nozomu
    詳しい説明、ありがとうございます。
    標準ライブラリへの反映やMP3再生との両立(切替)を含めてOkamiyaさんにお願いするしかなさそうですね。
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
Children
  • fujita nozomu
    0 fujita nozomu over 3 years ago in reply to maenoh!

    改善の意思があるようには思いませんがどうですかね?

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
サイト使用条件
プライバシーポリシー
お問い合わせ
© 2010-2021 Renesas Electronics Corporation. All rights reserved.