ricardo_ の回答履歴

全144件中61~80件表示
  • ポインタの意味がよくわからず、困っています。一応、自分のポインタの理解

    ポインタの意味がよくわからず、困っています。一応、自分のポインタの理解が良いものなのかを指摘していただけませんでしょうか? (1) int a; int *b; と宣言した場合、例えば、このことから、 アドレス10:a アドレス20:*b というSRAMのアドレスにそれぞれが配置されますよね? (すみません、へんな言い方で、) (2)b = a; これはaはデータで、bはポインタ用の変数なので、、これは計算出来ない。 (3)b = &a; これは*bのメモリアドレス20にaのメモリアドレスの”10”が格納される。のでしょうか? また、 (4)b = 30; これをやった場合は、*bのメモリアドレス20に30が格納される。のでしょうか? また、 (5)b = &a  これをやってから、 b = 30  これをやった場合は、aのメモリアドレス10にデータ”30”が格納されると言うことになるのでしょうか? 一応、現在理解がはっきりとしないことを箇条書きさせて頂きました。 是非ご教授よろしくお願いいたします。

  • 貧乏海外旅行

    貧乏海外旅行の秘訣 お金の節約はやはり野宿が良いですかね? 食べ物はバナナとかが良いでしょうか? フランスにいきたいです。 5万円で1ヶ月は居たいです。 どうすればよろしいでしょうか。

  • H8S2368マイコンのTCSR_1レジスタの4ビット目が1のはずなのに0と表示される。

    いま、H8S2368マイコンのプログラムを作っているのですが、 TCSR_1レジスタの値を printf("data:%X addr:%p\n\r", TMR1.TCSR.BYTE,(void*)&TMR1.TCSR.BYTE); このプログラムでリードしてみて、UART通信で受信したところ ”data:C0 addr:ffffb3” このレジスタのデータが0xC0というのを確認しました。 このH8S2368マイコンのデータシートの502ページ目(rjj09b0162_h8s2368.pdf)では、このレジスタの4ビット目はリザーブビットで、リードすると必ず”1”が読み込まれると書かれているのですが、なぜかそのビットが”0”で帰ってきます。 ”0xD0”ならばわかるのですが、これはなぜなのでしょうか?

  • H8Sで割り込み発生時の飛び先アドレスがRAM上にある場合の割り込み関数の記述方法

    ルネサスのマイコンH8Sのプログラムを組んでおります。 プログラムの構成がBoot部分とアプリケーション部分に分かれており、 Bootはアドレス0番地から、アプリは3000番地以降の領域を使用するようになっています。 完成されたBootを使用してアプリケーションのプログラムを組まなければならなく、また、Bootは変更できないことになっています。 このBootの中のベクターテーブル上で、割り込みが発生した場合の飛び先のアドレスがRAM上になるように設定してあります。 このため、アプリケーションソフトでは、 割り込みが発生した場合のRAM上の飛び先に FLASH ROM上の指定したアドレスにジャンプする命令を書き、 FLASH ROMのジャンプ先には、実行したい関数を書きたいのですが、 (1)RAM上の特定のアドレスからFLASH ROM上の指定したアドレスにジャンプさせる方法。 (2)FLAH ROM上の指定したアドレスに関数を記述する方法。 を知りたいのですが、 どなたか教えて頂けないでしょうか? 開発環境はHew4 言語はC言語を使用しております。 私自身が理解不足であるため質問内容が伝わりにくいかと思いますが、 宜しくお願い致します。

  • メキシコの夜行バスについて

    メキシコの夜行バスについて 今年の2月にメキシコに向かうのですが、 距離があるので夜行バスを使おうかと思っています。 ですが、、危険だという人や大丈夫だという人に別れてしまい どうしたらいいか悩んでいます・・・。 テロにあったという情報や何もないという人もいて本当にまちまちです。 誰か知っておられるでしょうか?よろしくお願いします!! メキシコシティ→ベラクルス→パレンケ→ティカル→ パレンケ→メリダ→飛行機→チワワ→ロスモチフ→ラパス→マサトラン→グアダハラ→グアナファト→ オアハカ→メキシコシティ と計画しています。

  • ステッピングモーターについて

    ステッピングモーターについて色々ですが (1)ステッピングモーターを滑らかに制御するのはパルスは方形波より正弦波の方がいいのでしょうか? (2)最初に励磁する相はローターの位置がわからなければ数ステップずれるのではないかと思いますがどうなのでしょうか? (3)低速回転するとモーターがうなりますが何故うなるのでしょうか? 構造的なものだと思いましたがやはりどうにもならないものでしょうか?

    • ベストアンサー
    • poyo3
    • 科学
    • 回答数2
  • 【H8-3052F】タイマ割り込み

    C言語もマイコンも初心者ですので情報が不足していたら笑って指摘してください。 今はルネサスのHigh-performance Embedded Workshop(Version 4.04.01.001)を使用してタイマ割り込みを実現しようとしてますが、タイマが動作しません。 出力結果も繰り返し処理が正常に動いてないように見えます。 原因等わかる方いらっしゃいましたら教えていただけますでしょうか。 可能でしたらソースコードもつけていただけると幸いです。 ---出力結果--- H8/3052F Monitor v1.12 Copyright (C) 1999-2004 CSE Tomakomai NCT 1:ld 1:go 00ffe000 change job wooooooooo! w ---ソースコード--- #include "3052f.h" #include "utility.h" #pragma interrupt ( aaa ) int cnt; extern void initITU( void ); void aaa() { debugString( "aaa!" ); cnt++; } void main(void) { InitializeSCI(); setDebugMode( true ); initITU(); // タイマーを初期化 ITU0.GRA = 20000; // タイマでカウントする値の設定 ITU0.TCNT = 0; // Reset ITU0.TCNT ITU.TSTR.BIT.STR0 = 1; // タイマ スタート debugString( "change job" ); while( 1 ){ if(cnt == 50){ debugString( "here we go!" ); cnt = 0; } else { debugString( "wooooooooo!" ); } } } void initITU() { ITU.TSNC.BIT.SYNC0 = 0; // 他チャンネルとの同期無し(独立動作) ITU.TSNC.BIT.SYNC1 = 0; // 他チャンネルとの同期無し(独立動作) ITU.TSNC.BIT.SYNC2 = 0; // 他チャンネルとの同期無し(独立動作) ITU.TSNC.BIT.SYNC3 = 0; // 他チャンネルとの同期無し(独立動作) ITU.TSNC.BIT.SYNC4 = 0; // 他チャンネルとの同期無し(独立動作) ITU0.TCR.BYTE = 0x03; // クロックの1/8で動作。TCNTのクリア禁止 ITU1.TCR.BYTE = 0x03; // クロックの1/8で動作。TCNTのクリア禁止 ITU2.TCR.BYTE = 0x03; // クロックの1/8で動作。TCNTのクリア禁止 ITU3.TCR.BYTE = 0x03; // クロックの1/8で動作。TCNTのクリア禁止 ITU4.TCR.BYTE = 0x03; // クロックの1/8で動作。TCNTのクリア禁止 ITU0.TIOR.BYTE = 0; // GRの制御。0x00でよい。 ITU1.TIOR.BYTE = 0; // GRの制御。0x00でよい。 ITU2.TIOR.BYTE = 0; // GRの制御。0x00でよい。 ITU3.TIOR.BYTE = 0; // GRの制御。0x00でよい。 ITU4.TIOR.BYTE = 0; // GRの制御。0x00でよい。 ITU0.TIER.BIT.IMIEA = 1; // 全割り込み許可(オーバーフロー/IMFA/IMFB) ITU1.TIER.BIT.IMIEA = 0; // 全割り込み禁止(オーバーフロー/IMFA/IMFB) ITU2.TIER.BIT.IMIEA = 0; // 全割り込み禁止(オーバーフロー/IMFA/IMFB) ITU3.TIER.BIT.IMIEA = 0; // 全割り込み禁止(オーバーフロー/IMFA/IMFB) ITU4.TIER.BIT.IMIEA = 0; // 全割り込み許可(オーバーフロー/IMFA/IMFB) }

  • do-while文の処理が実行されない

    コンパイラは通ったのですが、自分の思うように処理されない箇所があって困っています。 1区間の数字列を回帰直線で近似し、回帰直線との誤差が最大の点で区間を分割(誤差が閾値以上なら)するプログラムを作っています。次に分割した区間それぞれに同様の作業をし、分割が一つでもあればまた最初から繰り返す、どこも分割されなければ終了・・・という流れです。 プログラムでは do{ bunkatu=0; for(全ての区間){ (最大誤差や回帰直線の傾きを0に初期化する) (傾き、最大誤差求める) if(最大誤差が閾値以上なら){  (最大誤差の点を境に区間を分けるよう設定) bunkatu = 1;} } }while((bunkatu) != 0); と表しています。分割が一つでもあれば変数 bunkatu が1になり、whileの条件 (bunkatu) != 0 と合っているのでまた do 以下から動作する・・・と考えているのですが、考え方としてはこれで合っているのでしょうか。

  • ドイツ語、フランス語、イスパニア語、ロシア語、ポルトガル語

    当方男です。 上記の言語のどれかを大学で「専攻」として学ぶ上で、どれが良いとお考えになられますか? 経験者様にお答えいただけるのであればもちろん多少バイアスのかかった意見でもかまいませんし、(むしろ大歓迎です。) 直接かかわっていない方も聞いた話や、その国柄、文化などをご存知の方は、その方の助言もいただければ幸いです。 上智大学外国語学部における言語の専攻で迷ってます。 私は今期入学試験を受けるものなのですが、お恥ずかしい話、上記の言語に関しては全く知識がありません。 さすがに本学部に入学できればどれでも良いというわけではありませんが、 他の方の意見も聞かせていただきたく、質問させていただきました。 また、本学部の上記言語学科は、英語学科と重なり、就職状況などがとても不透明なのが心配の種です。 こちらはついでとなりますが、万一こちらの状況に詳しい方がいらっしゃいましたら、教えていただけるとありがたいです。 ご回答よろしくお願いします。

  • do-while文の処理が実行されない

    コンパイラは通ったのですが、自分の思うように処理されない箇所があって困っています。 1区間の数字列を回帰直線で近似し、回帰直線との誤差が最大の点で区間を分割(誤差が閾値以上なら)するプログラムを作っています。次に分割した区間それぞれに同様の作業をし、分割が一つでもあればまた最初から繰り返す、どこも分割されなければ終了・・・という流れです。 プログラムでは do{ bunkatu=0; for(全ての区間){ (最大誤差や回帰直線の傾きを0に初期化する) (傾き、最大誤差求める) if(最大誤差が閾値以上なら){  (最大誤差の点を境に区間を分けるよう設定) bunkatu = 1;} } }while((bunkatu) != 0); と表しています。分割が一つでもあれば変数 bunkatu が1になり、whileの条件 (bunkatu) != 0 と合っているのでまた do 以下から動作する・・・と考えているのですが、考え方としてはこれで合っているのでしょうか。

  • H8/3052について

    こんにちは。 現在秋月書店のH8/3052のマイコンを使ってイエローのC言語で 声の周波数を調べるという卒研をやっています。 声の周波数を調べるためにA/D変換を使ってやろうと思っていますが、 エラーが出ました。その前に周波数を調べられるかそうかはまだわかりませんが・・・。エラーの内容は 未定義のシンボルです DDR でした、 あと、周波数を調べるため、A/D変換するためのポートはP7でよろしいでしょうか? 皆さんのご指摘お願いいたします。 プログラムの一部を載せます。 #include <3048F.H> #define E_SIG 0x20 #define RS_SIG 0x10 void ioinit(void) { P7.DDR = 0xff; //ポート3を全ビット出力に設定 } void adinit(void) { AD.CSR.BIT.ADF = 0; //ADFフラグクリア AD.CSR.BIT.SCAN = 0; //単一モード選択 AD.CSR.BIT.CKS = 1; //クロックセレクト AD.CSR.BIT.CH = 0; //チャネルセレクト AN0単一モード } です。よろしくお願いします。

  • 非接地線とアース線での電気の点灯について

    単相3線式の分電盤に漏電ブレーカーを取り付ける工事をしました。 取り付け終わった後、ブレーカーをいれて電気のスイッチをいれたら漏電ブレーカーが切れました。 結線をばらし調べた結果、スイッチがかかった非接地側の線は正常でしたが、どうやら壁の中で接地側の線がアース線と入れ替わってジョイントされているようです。 照明にきてる電線はプラスとアースということになります。 このお宅の接地抵抗は1Ωと非常によかったのでアースから電気が回って照明がついていたと考えてよいのでしょうか? 接地抵抗の値が悪ければテスタで100Vはでても、実際は電気はつかないということでよいのでしょうか? 明確な根拠がなく説明に困っています。 宜しくお願いします。

  • 非接地線とアース線での電気の点灯について

    単相3線式の分電盤に漏電ブレーカーを取り付ける工事をしました。 取り付け終わった後、ブレーカーをいれて電気のスイッチをいれたら漏電ブレーカーが切れました。 結線をばらし調べた結果、スイッチがかかった非接地側の線は正常でしたが、どうやら壁の中で接地側の線がアース線と入れ替わってジョイントされているようです。 照明にきてる電線はプラスとアースということになります。 このお宅の接地抵抗は1Ωと非常によかったのでアースから電気が回って照明がついていたと考えてよいのでしょうか? 接地抵抗の値が悪ければテスタで100Vはでても、実際は電気はつかないということでよいのでしょうか? 明確な根拠がなく説明に困っています。 宜しくお願いします。

  • pow

    「1~10までの数、 その2乗、 その3乗」を10行出力するものです。 なぜか5^2 = 24 なってしまいました。なぜですか。お願いします。 #include <stdio.h> #include <math.h> int main(void) { int i, j; for (i = 0; i < 10; i++) { for (j = 0; j < 3; j++) { printf("%4d ", (int)pow(i+1, j+1)); } printf("\n"); } return 0; }

  • 「配列名はポインタ」という表現は間違っているのでは?

    よくネット上で、「配列名はポインタ」というような表現が出てきますが、 「配列名はポインタになっているのである。 http://www.wakhok.ac.jp/~kanayama/C/99/node111.html」 このような表現は、間違っているのではないでしょうか? C言語を作った本人によるK&Rのp.121には、次のように書かれています。 配列名とポインタの間には、心に留めておかなければならない違いが一つある。 ポインタは変数であり、したがってpa=aやpa++は意味のある演算である。   ←(1) しかし配列名は変数ではない。したがって、a=paやa++のような構文は正しくない。 ←(2) (1)より、 ポインタは、変数である ので、この対偶をとると、 変数でないものは、ポインタではない  ←(3) となります。 (2)より、 配列名は、変数ではない  ←(4) となるので、 (3)と(4)から、 配列名は、ポインタではない ←(5) となります。 そうすると、「配列名はポインタ」というような表現は間違っていることになり、誤解の元になるので、改めるべきではないかと思うのですが。

  • 反転アンプ入力インピーダンスについて

    課題:電流アンプでnAの電流を測定しようと思いますが、出力された±電圧を+電圧に変換してマイコンへ入力しようと考えております。 質問:+電圧へ変換のため、反転増幅回路を使用しようと考えましたが、反転アンプの入力インピーダンスが無限大ではなくRinですから精度を保つため、反転アンプの前段に電圧フォロア回路をつけてもいいでしょうか。それで反転アンプの入力インピーダンスが小さい問題を解決できるでしょうか。また別にいい方法があればご教示願います。

  • 「配列名はポインタ」という表現は間違っているのでは?

    よくネット上で、「配列名はポインタ」というような表現が出てきますが、 「配列名はポインタになっているのである。 http://www.wakhok.ac.jp/~kanayama/C/99/node111.html」 このような表現は、間違っているのではないでしょうか? C言語を作った本人によるK&Rのp.121には、次のように書かれています。 配列名とポインタの間には、心に留めておかなければならない違いが一つある。 ポインタは変数であり、したがってpa=aやpa++は意味のある演算である。   ←(1) しかし配列名は変数ではない。したがって、a=paやa++のような構文は正しくない。 ←(2) (1)より、 ポインタは、変数である ので、この対偶をとると、 変数でないものは、ポインタではない  ←(3) となります。 (2)より、 配列名は、変数ではない  ←(4) となるので、 (3)と(4)から、 配列名は、ポインタではない ←(5) となります。 そうすると、「配列名はポインタ」というような表現は間違っていることになり、誤解の元になるので、改めるべきではないかと思うのですが。

  • ブレッドボードでのb接点、c接点スイッチ

    ブレッドボードで使用したいのですが、タクトスイッチのb接タイプって無いのでしょうか? 又、小さくてお値打ちな物はどれでしょうか?(b接又は、c接点)

  • これを中国語でなんと言いますか?

    不動産投資ファンドの「アセットマネージャー」と「プロパティマネージャー」をそれぞれ中国語ではなんと書くか知っている方お願いします!

  • A/D変換について

    こんにちは。 卒業研究でH8/3052(秋月書店)のマイコンボートを使って実験しています。 ファックションジュネレータを使って周波数の様子をA/D変換で調べたいです。その結果をLCDで表示出すという流れでプログラム作っていましたが以下のようなエラーが出ました。 これは未定義のシンボルですADCSR、 これは未定義のシンボルですADDRA、 がたくさんでました。 これはプログラムが間違ってるのか、ヘッダファイルが間違ってるのか自分の実力では判断できないので皆さんの意見をお願いいたします。 一応プログラムを載せます。 長いので一部だけのせたいと思います。 #include <3048.H> #define E_SIG 0x20 #define RS_SIG 0x10 void ioinit(void) { P3.DDR = 0xff; //ポート3を全ビット出力に設定 } void adinit(void) { AD.ADCSR.BIT.ADF = 0; //ADFフラグクリア AD.ADCSR.BIT.SCAN = 0; //単一モード選択 AD.ADCSR.BIT.CKS = 1; //クロックセレクト AD.ADCSR.BIT.CH = 0; //チャネルセレクト AN0単一モード } ・ ・ ・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ヘッダファイルはマイコンを買ったときに付属していたCDからコピーしたものです。 皆さんのご指摘よろしくお願いいたします。