Renesas Rulz - Japan
  • User
    Join or Sign In
  • Site
  • Search Japan.RenesasRulz.com
  • User
  • Renesas Rulz
  • FAQ
  • パートナー
  • 半導体セミナ
  • eラーニング
  • ヘルプ
  • More
  • Cancel
  • かふぇルネ
  • がじぇるね
  • Groups
  • English Community
  • More
  • Cancel
がじぇっとるねさすコミュニティ
がじぇっとるねさすコミュニティ
GR-COTTON GR_COTTON でスレッド(またはスレッドライクな処理…
  • Forums
  • Blog
  • Files
  • がじぇっとるねさす ゆーざー会 - Wiki
  • Tags
  • More
  • Cancel
  • New

 

 チャレンジプログラム

 GR-SAKURA

 GR-KURUMI

 SNShield

 Web Compiler

 IDE for GR

 その他

 

 作り方使い方資料

 イベント関連

 作品記事

 体験記事

 その他

 

 ライブラリ

 ツール

 その他

  • State Not Answered
  • Date ELIX
    ELIX
  • Date 2016/10/9 0:27
  • Replies 8 replies
  • Subscribers 439 subscribers
  • Views 2729 views
  • GR-COTTON
Options
  • Share
  • More
  • Cancel
Related Tags
  • COTTON
  • GR-COTTON
  • Picalico
Related

GR_COTTON でスレッド(またはスレッドライクな処理)を利用したい

こんにちは。

現在、GR-COTTON+WROOM-02 / GR-CITRUS+WA-MIKANを使用してUDPデータの送受信のテストを行っています。

送受信はできるようになったのですが、loop()内でsend()+recv()を行うと、受信データがもたついた時に処理が遅れてしまいます。

送信、受信のスレッドを分ける、もしくはポーリング以外の方法をとることは可能でしょうか?

*関係ないですが、「スレッド」でサイト内検索をして初めてPOSTの方法を知りました。

左側のコミュニティボタンを押す必要があったんですね^^;

  • Cancel
  • Reply
  • fujita nozomu
    fujita nozomu
    • 0
    • 2016/10/9 13:01

    標準のライブラリでお手軽に行うには send()+recv() 以外を attachIntervalTimerHandler() 等で登録したタイマー割り込み処理で処理する方法ですかね。

  • ELIX
    ELIX
    • 0
    • 2016/10/9 20:21

    In reply to fujita nozomu:

    ありがとうございます!

    GR-COTTONのsetup()の最後に

    attachCyclicHandler(0,sendInt,1000);

    を入れてsendInt(unsigned long)を呼び出してみました。

    loop()が空の時はうまくいったのですが、

    loop()内にsend,recvなどがあるとうまく機能しないようです(1回だけ呼ばれてその後呼ばれない)。

    attachCyclicHandlerはloop()内で処理される、とあるので、

    loop内が重たいと引っ張られてしまうのかもしれません。

    japan.renesasrulz.com/.../2231.aspx

    最終的にはsend()とrecv()を非同期にできたらいいなと思っているのですが、

    ひとまずrecv()のタイムアウトをなるべく短くして対応したいと思います。

  • fujita nozomu
    fujita nozomu
    • 0
    • 2016/10/9 23:40

    In reply to ELIX:

    よく読んでね。

  • ELIX
    ELIX
    • 0
    • 2016/10/10 3:02

    In reply to fujita nozomu:

    attachIntervalTimerHandler() ですね。。すみません。

    こちら動作を確認しました。ありがとうございます!

    ただ割り込み内でdelay()が使えないので、send()とrecv()を非同期にしたいという

    目的の用途には使用できなさそうでした。

  • fujita nozomu
    fujita nozomu
    • 0
    • 2016/10/10 3:30

    In reply to ELIX:

    > ただ割り込み内でdelay()が使えないので、send()とrecv()を非同期にしたいという

    > 目的の用途には使用できなさそうでした。

    タイマー割り込み処理は定期的に呼ばれるので、delay() したければ後の処理に回せばいいだけですよ。

  • ELIX
    ELIX
    • 0
    • 2016/10/10 6:06

    In reply to fujita nozomu:

    ありがとうございます。言葉足らずですみません。

    delayはライブラリ(ESP8266)の中で使用されています。

    でもそうですね、ライブラリ改変も含め検討してみます。

  • fujita nozomu
    fujita nozomu
    • 0
    • 2016/10/10 14:24

    In reply to ELIX:

    投稿内容を読んで理解して下さらない方のようで残念です。

  • ELIX
    ELIX
    • 0
    • 2016/10/10 18:09

    In reply to fujita nozomu:

    知識が浅く、いろいろ教えていただいたのに生かしきれなくて申し訳ありません。

    ありがとうございました!

サイト使用条件
プライバシーポリシー
お問い合わせ
© 2010-2019 Renesas Electronics Corporation. All rights reserved.