• ベストアンサー

割り込み処理から引数を取得する方法

AVRの割り込み処理なのですが、 ISR(割り込みベクタ) { 処理; } みたいに書きますよね? 例えば通信の完了とかで割り込みさせて、取得した値を他の関数内で使う時にグローバル関数を使う他ないのでしょうか? 関数みたいにreturnさせたり出来ないのかなと思いまして。 returnさせても呼び出す親がいないので取得方法がわからないなと。 出来ないなら出来ないでグローバルを使います。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

タイトルの日本語がおかしい. 「引数」って何か, 理解してますか? 本題については, 端的に言って無理. というか, 割り込みで得られる値を「実際に必要とするとき」までどこにおいておくつもり?

DELED
質問者

お礼

回答有り難うございます。 >引数 ご指摘の通り「引数」って書いたのは誤りですね。 関数の引数のように値をreturn出来ないものかとおもったので。 値を必要な時まで保持しておく場所、ここが一番の謎だったので質問しました。 割り込みは特定のルーチンから読み出される訳じゃないので私の知識ではグローバル変数を利用する他無かったのですが、やはりグローバル変数を使う他無いのですか。 ご教授有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 割り込み処理について

    割り込み処理について 初心者です。 AVRマイコンの割り込み処理について質問させて頂きます。 INT0割り込みルーチンの途中で、条件1により割り込み発生元(メインルーチン)に復帰させてたいのですが、下記のソースに何か問題はございますか? ISR(INT0_vect,ISR_NOBLOCK) {     int0割り込み禁止          条件1         return;     処理1          条件2         return;     処理2 } よろしくお願い致します。

  • 読み込み完了後の画像サイズを取得したい

    画像ファイルの高さを取得する関数を作成しています。 Imageオブジェクトのheightプロパティの値を取得すればよいだけなの ですが、画像が大きかったりすると読み込み完了前に値を取得してしま うようで、正確な高さが取得できません。 completeプロパティがfalseなら、trueが返ってくるまでheightプロパ ティの値を取得しない・・・といった処理を盛り込んだ関数が作成でき ればと考えていますが、上手く作成できずにいます。 アドバイスをよろしくお願いします。 とりあえず、関数本体はこんな感じにしてます。 function getImgHeight(imgSrc) { objImg = new Image(); objImg.src = imgSrc; //読込み完了ならば高さを取得したい //完了するまで待機できたらよいのだけど・・・ return objImg.height; }

  • 割り込み処理について

    割り込み処理について 初心者です。 AVRマイコンの割り込み処理について質問させて頂きます。 INT0割り込みの割り込みが入ったら、割り込みルーチン中の他の割り込みを許可し、かつINT0の割り込みを禁止したいのですが、下記ソースで問題はありませんか? INT0割り込みが終了して、メインルーチンに復帰した直後にINT0割り込みを許可したいのですが、下記ソース(1)で問題はありませんか(メインルーチンに復帰した直後に許可したいのですが、方法がわかりません)? ISR(INT0_vect,ISR_NOBLOCK) {     int0割り込み禁止      ・      ・      ・      ・    (int0割り込み要求フラグクリア) ・・・・(1)        (int0割り込み許可)         ・・・・(1)   } よろしくお願い致します。

  • 関数の引数の型と引数名を取得する方法

    こんにちは。 コンパイル時に関数の引数の型と引数名を取得する手段はありますでしょうか? 関数名は__FUNCTION__がありますが、引数をなんらかの方法で取得したいのですが手段はありますでしょうか? foo(int a0, int a1 ) なら"int a0, int a1"みたいな感じで取得できればと思っています。

  • 非同期のpagenate

    cakephpとjavascriptの使い方について、質問があります。 ページ遷移なしで、1ページ目のデータの後に、 2ページ目のデータを追加で表示させる機能を作成しております。 以下の方法で、実現させようと考えております。 (1)cakephpのview: javascriptの関数を呼出す。 (2)javascript: 非同期通信にて、php上の関数を呼出す。 (3)cakephpのcontroller: pagenateにて取得したページごとの値をsetする。 (4)javascript: (3)でsetした値を取得する。 (5)cakephpのview: (4)で取得した値を表示する。 (4)の処理で、phpからの値を取得することができませんでした。 setでなく、returnに変えましたが、取得できないままでした。 javascriptから、phpの値を取得する方法を教えて頂けますでしょうか? また、上記の方法以外での実現方法は、ありますでしょうか?

    • ベストアンサー
    • PHP
  • ラジオボタンの値を取得する引数付き関数を作りたい

    フォームの入力内容をチェックするJAVASCRIPTの関数を作成していますが、ラジオボタンのValueを取得することができません。 引数指定の関数を作成して汎用的に使用したいと考えているのですが、引数を渡すと値を返してくれません。 引数の渡し方がおかしいのでしょうか? function getRadioValue(str){ // 値を取得する関数 var check, num, value="none"; num=document.form1.str.length; for (i=0;i<num;i++) { check=document.form1.str[i].checked; if (check) value=document.form1.str[i].value; } return value; } function check(){ // 入力内容をチェックする if (getRadioValue("タイプ") == "A"){ hogehoge } : : }

  • コンストラクタで戻り値を取得する方法は?

    こんばんわ。 いつもお世話になっています。 初歩的な質問なんですが、 掲題の件なんですが、 /*--------------------------------*/ class ClassA{ function ClassA($str){ : : (処理) : if( $ret ){ return true; }else{ return false; } } } $ret = new ClassA($str); if(!$ret){ エラー処理 } /*--------------------------------*/ どのように書いたら、 ClassAのコンストラクタで戻した値を 取得することができるんでしょうか? phpのバージョンは4.3です。 以上、宜しく御願致します。

    • ベストアンサー
    • PHP
  • AVRマイコンの割り込みについて

    AVRマイコンの割り込みについて 初心者です。 ・AVRマイコンの割り込みの優先順位ですが、割込みベクターのアドレスが小さい順に優先度が高いでよろしいでしょうか? ・優先低の割り込みルーチンを処理している時に、優先高の割り込みが入った場合、  (1)優先低の割り込みルーチン処理中断→優先高の割り込みルーチンの処理、完了→優先低の割り込みルーチン処理再開(中断ヶ所から)  (2)優先低の割り込みルーチン処理、完了→優先高の割り込みルーチンの処理、完了  (3)その他 (1)、(2)、(3)のどの処理が行われますか? ・優先高の割り込みルーチンを処理している時に、優先高の割り込みを禁止し、ルーチン内で優先低の割り込みが入った場合、優先高の割り込みルーチンから優先低の割り込みルーチンにとばすことは可能でしょうか? 以上、よろしくお願い致します。

  • reloadを行った時のみ処理を変える。

    reloadを行った時にのみ違う処理を行うという方法を探しております。 現時点で行っているのは。 「document.referrer」でハイパーリンク元のURLを取得し、変数Aに入れておきます。 今いるページのURLと変数AのURLが等しければリロードを行ったものと判定し、処理おこなうというものなのです。 しかし、Fire foxでは作動するのですがIEでは上手document.referrerで値が取れず、機能しません。 IEでdocument.referrer上手く値を取得する方法、又は他のリロード時のみ違う処理を行う方法をご存知の方がいらっしゃいましたら、教えていただけないでしょうか。 宜しくお願い致します。

  • 引数の値がない場合に自動入力

    お世話になります。 VBAで下記の「関数A」があります。 親ソースで、下記2パターン記載した時に (1)は、test=1で処理が進む (2)は、test=999で処理が進むようにしたいのですが どのように関数Aを記載したら良いでしょうか? ※引数を指定しない時は、999の値が自動で入るように したいのです。 (1)call 関数A(1) (2)call 関数A ※何も引数を指定しない ------関数A---- sub 関数A(test as Long) 'testを使って色々 end sub -----------------

このQ&Aのポイント
  • 自分の母の父(おじいちゃん)の兄は大叔父に当たるのか?
  • 母の兄弟のことを叔父や叔母と呼ぶ場合、母の親の兄弟は大叔父と呼ぶのか?
  • 自分の母の父の兄は何と呼ぶのか?
回答を見る