麻野 なぎのプロフィール

@asano_nagi 麻野 なぎ
ありがとう数166
質問数0
回答数220
ベストアンサー数
42
ベストアンサー率
35%
お礼率
0%

  • 登録日2014/03/20
  • 性別男性
  • 職業会社員
  • 年代60代
  • 都道府県鳥取県
  • Webサイト http://axis.blue/
  • H8/36064のAD変換データの文字列化について

    たびたびの質問失礼いたします。 前回シリアル通信によって文字化けがおきることについて質問させていただいたものです。 前回の質問後、10ビットのA/D変換データを文字列に置き換える方法を調べstatic void uint2Hex()によって文字列に置き換えを行っているのですがまだうまく解消できませんでした。 申し訳ないのですが再び助言をいただけないでしょうか。 H8/36064を使用しTera Termに取り込むことで確認を行っています。 ボーレートなどのシリアル通信の設定はマイコン側、Tera Term側であわせてあります。 #include "iodefine.h" #include <machine.h> //割り込みマスクビット変更関数set_imask_ccr() を使用するためのインクルードファイル #include <stdio.h> void main(void) { init(); while(1){ if(AD.ADCSR.BIT.ADF == 1) Getad(); } } init() //A/D変換およびタイマV初期設定用関数 { set_imask_ccr(1); //割り込み禁止設定 AD.ADCSR.BIT.SCAN = 1; AD.ADCSR.BIT.CH = 101; TV.TCRV1.BIT.ICKS = 0; TV.TCRV0.BIT.CKS = 3; //Φ/128 TV.TCORA = 115-1; //コンペアマッチAの値 TV.TCRV0.BIT.CCLR = 1; //タイマカウンタクリア TV.TCRV0.BIT.CMIEA = 1; //割り込み発生フラグ設定 set_imask_ccr(0); //割り込み禁止解除 } void initSCI3(void) //シリアル通信設定 { unsigned int dmy; IO.PMR1.BIT.TXD = 1; //TXD端子使用設定 SCI3.SCR3.BYTE = 0; //SCR3クリア SCI3.SMR.BYTE = 0; //SMRフォーマット設定 SCI3.BRR = 47; //9600bps for(dmy = 280;dmy > 0;dmy--); SCI3.SCR3.BIT.TE = 1; //送信動作許可 } void rs_putc(char c) //1文字送信 { while(SCI3.SSR.BIT.TDRE == 0); //トランスミットデータレジスタエンプティが真になるまで待機 SCI3.TDR = c; //トランスミットデータレジスタに送信データ(8bit)をセット SCI3.SSR.BIT.TDRE = 0; //「送信中」フラグを立てる } void rs_puts(char *st) //文字列送信 { while(*st != 0){ rs_putc(*st); st++; } } static void uint2Hex(unsigned long n, short upper, char *buf) { char c; char a = 'a'; short len = 0; short i, half; if(upper) a = 'A'; // 大文字/小文字の設定 // 16進文字列へ変換し文字数をカウント do{ i = n & 0x0F; if(i > 9) buf[len] = (unsigned char)(i + a - 10); else buf[len] = (unsigned char)(i + '0'); len++; n >>= 4; }while(n != 0); half = len >> 1; // 文字の並び順を直す for(i=0; i < half; i++){ c = buf[i]; buf[i] = buf[(len-1)-i]; buf[(len-1)-i] = c; } buf[len]='\0'; // 終端コードの挿入 } Getad() { volatile unsigned int *data = (unsigned int *)0xfa00; volatile unsigned int *data2 = (unsigned int *)0xfa10; initSCI3(); // SCI3初期化 *data =AD.ADDRA; *data = *data >> 6;//右に6bitシフト *data2 =AD.ADDRB; *data2 = *data2 >> 6;//右に6bitシフト rs_putc(*data); rs_putc(*data2); AD.ADCSR.BIT.ADF = 0; AD.ADCSR.BIT.ADST = 0; } #pragma interrupt (TimerV(vect=22)) //割り込み処理関数としてTimerVを宣言 void TimerV(void) { static int count; //20000回(0.1秒)ごとにGetad // コンペアマッチフラグを0に戻し、次のコンペアマッチに備える。 TV.TCSRV.BIT.CMFA = 0; if(count<100) count++; else { count = 0; AD.ADCSR.BIT.ADST = 1; //AD変換開始 } }

    • rokuMK2
    • 回答数3
  • 国民個人資産の総額は9249兆6000億円?

    報道により、「日本国民が個人で持っている資産が増えた。 9249兆6000億円」と聞こえたが、本当でしょうか?

  • パイプの最後に、クリップボードに出力したい

    Windowsで言うとstdout, stderは、それぞれの指定された主力先です。 恐らくLinuxでもあると思いますが、他にクリップボードに出力する出力先はありますか。例えば $ echo "ABC" >stdclipboard とすると、クリップボードに"ABC"が入る、等。 あるコマンドの出力をエディタで編集したいのですが、現在は一度ファイルに出力し、そのファイルをエディタで開く手間が必要です。

    • remokon
    • 回答数2
  • HPの更新をしたら自動でメールが飛ぶようにしたい!

    ホームページの更新をしたら自動でメールが飛ぶようにしたいです。 ただ今、身内向けのホームページを作っております。 ですが、毎日チェックしてもらうのも苦労をかけさせるので、HPを更新した時に自動で身内のメールアドレスにメールが配信されるようにしたいです。 借りているサーバーにはそのようなサービスが無く、あまりお金も掛けたくないので、 自分でホームページのプログラム(html,java,phpどれでも可)に組み込みたいです。 現状、トップページの更新報告が更新されたらメールを配信するという風に考えていますが、考えがあるだけで方法がわかりません。 また、登録しているページが更新されたらメールで知らせてくれるサービスもありますが、お門違いでしょうか? 某知恵袋では粘着気質の方にできないの一点張りで全く情報を得られませんでした。 わかる方、もしくは方法が書かれているホームページを知っている方、どうかお教えください。

  • word文書をテキストに変換するには?

    wordで書いたdocファイルをtxtファイルにコンバートしようと思ってrtfコンバーターを 使って変換してみたのですが、文字化けしてしまって読むことができません。wordのバージョンは 覚えていませんし、文字コードも何を使用していたのか忘れてしまいました。 目的 私が作った作品(word で作った文書ファイル)を私の親戚にメールで送ろうと思うのですが、docファイルのまま だと相手方もwordを持っていないと開けませんし、相手方がwordを持っているか不明なので プレーンテキストに変換してメールで送りたいと思ったのですが。 環境 pc:富士通 ESPRIMO D582/EW os:Win7 Sp1 docファイルは、バイナリファイルになるのでしょうか。とすれば、バイナリファイルから テキストファイルに変換する必要がありますが、何かいいツールはないものでしょうか。 それとも、この場合、wordをダウンロードしなければならないのでしょうか。 可能な限りwordはインストールしたくありませんので何かいい方法があればアドバイスください。 wordをつかっていたpcは2年前に昇天する前まで使っていましたが、wordはインストールしていませんし、 これからもワープロソフトを使うつもりもありません。 今は、テキストエディタ(メモ帳)をつかっていますので。