f-tomohiko の回答履歴

全70件中41~60件表示
  • H8S/2633と超音波距離計の組み合わせ

    大学での研究として、H8マイコンを使用しています。 H8マイコン(H8S/2633)と超音波センサを利用した距離計を組み合わせようとしています。 超音波距離計はこちらで購入したものです。 http://www.japan-elekit.jp/product/24 表示回路の部分が異なりますが、回路図はほぼこちらと同じです↓ http://www.japan-elekit.jp/zoom/1703 ---------------------------------------------------------- 使用しているものは出力を読み取る部分がありませんので、 PIC16F84の3番ピンと6番ピンの信号をH8で受信して 超音波反射時間を求め、距離情報に変えようとしてます。 ---------------------------------------------------------- ここで質問なのですが、 H8S/2633でそのような計算は出来るのでしょうか。 マイコンへの取り込み方から教えて頂けないでしょうか。 ※プログラムはC言語を使用します。 (大学の授業で勉強した程度の知識しかありません) ※マイコンについてはほとんど知識がありません。

  • PIC16F877を用いたC言語でのAD変換について

    PICを用いてAD変換をしようとしていますが,思うように出力が出ず困っています. 可変抵抗を用いて0-5V間を調整可能な入力をAN0ピンに接続し,AD変換の結果をBポートに出力しようとしています. 使用条件は,mikroC使用,PIC16F877使用,C言語使用,水晶20MHz,Aポート入力(AN0ピンアナログ入力),Bポート出力,Tad=1.6μsです. 以下のプログラムで間違っている点をご指摘いただきたいと考えています. unsigned int out_b; void port_initialize() { INTCON=0; //割り込みなし ADCON0=0x81; ADCON1=0x8E; //AD変換中の入力範囲設定は電源と共有 TRISA = 0x3f; //AD変換用ポート(1で入力) TRISB = 0; //出力用ポート(0で出力) PORTB = 0; } void value_initialize() { out_b=0; PORTB=out_b; } void main() { port_initialize(); value_initialize(); while(1){ //endless ADCON0=0x81; //AD変換bitを選択 Delay_us(24); //アクィジション時間+AD変換後の待ち時間 ADCON0=0x85; //AD変換開始 Delay_us(20); //AD変換待ち時間 out_b=ADC_Read(0); PORTB=out_b; } }

  • PIC16F877を用いたC言語でのAD変換について

    PICを用いてAD変換をしようとしていますが,思うように出力が出ず困っています. 可変抵抗を用いて0-5V間を調整可能な入力をAN0ピンに接続し,AD変換の結果をBポートに出力しようとしています. 使用条件は,mikroC使用,PIC16F877使用,C言語使用,水晶20MHz,Aポート入力(AN0ピンアナログ入力),Bポート出力,Tad=1.6μsです. 以下のプログラムで間違っている点をご指摘いただきたいと考えています. unsigned int out_b; void port_initialize() { INTCON=0; //割り込みなし ADCON0=0x81; ADCON1=0x8E; //AD変換中の入力範囲設定は電源と共有 TRISA = 0x3f; //AD変換用ポート(1で入力) TRISB = 0; //出力用ポート(0で出力) PORTB = 0; } void value_initialize() { out_b=0; PORTB=out_b; } void main() { port_initialize(); value_initialize(); while(1){ //endless ADCON0=0x81; //AD変換bitを選択 Delay_us(24); //アクィジション時間+AD変換後の待ち時間 ADCON0=0x85; //AD変換開始 Delay_us(20); //AD変換待ち時間 out_b=ADC_Read(0); PORTB=out_b; } }

  • オシロスコープ 自動車

    自動車の故障診断に使用するため、オシロスコープの購入を考えています。どのくらいの機能が必要でしょうか?安価でお勧めの物などありますか?

  • 1行の文字列を時間差で表示する方法

    こんにちはorこんばんは。 学校でC言語を習っています。 質問なんですが以下のプログラムで1行で表示する文字を時間差で表示させたいのですがどうしたらいいんでしょうか?理想としては 「犯人は・・・(数秒後)お前だ!」 ←これを改行せずに1行で。 と表現したいんですが、最初に int main(void) {  printf("犯人は・・・");  sleep(2); printf("お前だ!\n"); return 0; } と書いたのですが、思い通りにいかず、数秒たってから一度に表示しました。 C言語を使っている環境はLinux4.2でemacsで書いています。 どなたか方法をご存じの方がいれば教えてください。 お願いします。

  • アルミニウム

    コンピューターに関する質問ではないのですが、アルミニウム成形機のプログラム用語に関して教えて頂ければ幸いです。 「学習押し出しカウンタ」の「学習」とはどういう意味でしょうか? 「記憶」あるいは「記録」に近いですか? また、 「学習開始本数設定」「学習可能本数到達」とは具体的にどういう意味でしょうか?この分野には全く素人で、困っとります。どうぞよろしくお願いします。

  • 18FシリーズのPICマイコンでのトラブル

    MPLAB IDE にてエラーがおきてしまい困っています ---------------------------------------------------------------------- Debug build of project `C:\Program Files\pic\w.mcp' started. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Preprocessor symbol `__DEBUG' is defined. Fri Oct 30 18:09:44 2009 ---------------------------------------------------------------------- Clean: Deleting intermediary and output files. Clean: Deleted file "C:\Program Files\pic\rei.o". Clean: Done. Executing: "C:\MCC18\bin\mcc18.exe" -p=18F2320 /i"C:\MCC18\bin\LKR" -I"C:\MCC18\h" "rei.c" -fo="rei.o" -D__DEBUG -mL -Oa -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa- MPLAB C18 v3.34 (evaluation) Copyright 2000-2009 Microchip Technology Inc. Days remaining until evaluation becomes feature limited: 59 Executing: "C:\MCC18\bin\mplink.exe" "..\..\MCC18\bin\LKR\18f2320_g.lkr" "rei.o" /u_CRUNTIME /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /w /o"w.cof" MPLINK 4.34, Linker Link step failed. ---------------------------------------------------------------------- Debug build of project `C:\Program Files\pic\w.mcp' failed. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Preprocessor symbol `__DEBUG' is defined. Fri Oct 30 18:09:44 2009 ---------------------------------------------------------------------- BUILD FAILED プログラムのエラーを修正しErrorはなくなりました しかし、ビルドが成功しません この原因のご指摘をよろしくお願いいたします

  • pic12f675の待ち時間関数について

    初めて質問します。 現在pic12f675で遊んでいるのですが、 http://homepage3.nifty.com/mitt/pic/picc/picc675_04_1.html にある、 // =================== 50uSウェイトルーチン =============== static void wait_50uS() { unsigned int cnt; unsigned int i; cnt = 2; for (i=0 ; i<cnt ; i++) { NOP(); } } の意味がわかりません。 特にfor (i=0 ; i<cnt ; i++) { NOP(); } の箇所です。 これでなぜ、50μsの待ち時間関数になるのでしょうか? どなたか答えてくれませんか?

  • pic12f675の待ち時間関数について

    初めて質問します。 現在pic12f675で遊んでいるのですが、 http://homepage3.nifty.com/mitt/pic/picc/picc675_04_1.html にある、 // =================== 50uSウェイトルーチン =============== static void wait_50uS() { unsigned int cnt; unsigned int i; cnt = 2; for (i=0 ; i<cnt ; i++) { NOP(); } } の意味がわかりません。 特にfor (i=0 ; i<cnt ; i++) { NOP(); } の箇所です。 これでなぜ、50μsの待ち時間関数になるのでしょうか? どなたか答えてくれませんか?

  • 18FシリーズのPICマイコンでのトラブル

    MPLAB IDE にてエラーがおきてしまい困っています ---------------------------------------------------------------------- Debug build of project `C:\Program Files\pic\w.mcp' started. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Preprocessor symbol `__DEBUG' is defined. Fri Oct 30 18:09:44 2009 ---------------------------------------------------------------------- Clean: Deleting intermediary and output files. Clean: Deleted file "C:\Program Files\pic\rei.o". Clean: Done. Executing: "C:\MCC18\bin\mcc18.exe" -p=18F2320 /i"C:\MCC18\bin\LKR" -I"C:\MCC18\h" "rei.c" -fo="rei.o" -D__DEBUG -mL -Oa -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa- MPLAB C18 v3.34 (evaluation) Copyright 2000-2009 Microchip Technology Inc. Days remaining until evaluation becomes feature limited: 59 Executing: "C:\MCC18\bin\mplink.exe" "..\..\MCC18\bin\LKR\18f2320_g.lkr" "rei.o" /u_CRUNTIME /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /w /o"w.cof" MPLINK 4.34, Linker Link step failed. ---------------------------------------------------------------------- Debug build of project `C:\Program Files\pic\w.mcp' failed. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Preprocessor symbol `__DEBUG' is defined. Fri Oct 30 18:09:44 2009 ---------------------------------------------------------------------- BUILD FAILED プログラムのエラーを修正しErrorはなくなりました しかし、ビルドが成功しません この原因のご指摘をよろしくお願いいたします

  • 18FシリーズのPICマイコンでのトラブル

    MPLAB IDE にてエラーがおきてしまい困っています ---------------------------------------------------------------------- Debug build of project `C:\Program Files\pic\w.mcp' started. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Preprocessor symbol `__DEBUG' is defined. Fri Oct 30 18:09:44 2009 ---------------------------------------------------------------------- Clean: Deleting intermediary and output files. Clean: Deleted file "C:\Program Files\pic\rei.o". Clean: Done. Executing: "C:\MCC18\bin\mcc18.exe" -p=18F2320 /i"C:\MCC18\bin\LKR" -I"C:\MCC18\h" "rei.c" -fo="rei.o" -D__DEBUG -mL -Oa -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa- MPLAB C18 v3.34 (evaluation) Copyright 2000-2009 Microchip Technology Inc. Days remaining until evaluation becomes feature limited: 59 Executing: "C:\MCC18\bin\mplink.exe" "..\..\MCC18\bin\LKR\18f2320_g.lkr" "rei.o" /u_CRUNTIME /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /w /o"w.cof" MPLINK 4.34, Linker Link step failed. ---------------------------------------------------------------------- Debug build of project `C:\Program Files\pic\w.mcp' failed. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Preprocessor symbol `__DEBUG' is defined. Fri Oct 30 18:09:44 2009 ---------------------------------------------------------------------- BUILD FAILED プログラムのエラーを修正しErrorはなくなりました しかし、ビルドが成功しません この原因のご指摘をよろしくお願いいたします

  • 18FシリーズのPICマイコンでのトラブル

    MPLAB IDE にてエラーがおきてしまい困っています ---------------------------------------------------------------------- Debug build of project `C:\Program Files\pic\w.mcp' started. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Preprocessor symbol `__DEBUG' is defined. Fri Oct 30 18:09:44 2009 ---------------------------------------------------------------------- Clean: Deleting intermediary and output files. Clean: Deleted file "C:\Program Files\pic\rei.o". Clean: Done. Executing: "C:\MCC18\bin\mcc18.exe" -p=18F2320 /i"C:\MCC18\bin\LKR" -I"C:\MCC18\h" "rei.c" -fo="rei.o" -D__DEBUG -mL -Oa -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa- MPLAB C18 v3.34 (evaluation) Copyright 2000-2009 Microchip Technology Inc. Days remaining until evaluation becomes feature limited: 59 Executing: "C:\MCC18\bin\mplink.exe" "..\..\MCC18\bin\LKR\18f2320_g.lkr" "rei.o" /u_CRUNTIME /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /w /o"w.cof" MPLINK 4.34, Linker Link step failed. ---------------------------------------------------------------------- Debug build of project `C:\Program Files\pic\w.mcp' failed. Language tool versions: mpasmwin.exe v5.34, mplink.exe v4.34, mcc18.exe v3.34 Preprocessor symbol `__DEBUG' is defined. Fri Oct 30 18:09:44 2009 ---------------------------------------------------------------------- BUILD FAILED プログラムのエラーを修正しErrorはなくなりました しかし、ビルドが成功しません この原因のご指摘をよろしくお願いいたします

  • H8マイコンにおける演算結果のデータ保存方法

    H8マイコン(H8S/2552)をC言語を用いて開発しています。 現在printfを用いて、表示されたものをコピー&ペーストすることによりマイコンで演算した結果をPCに保存しているのですが、これ以外の方法がありましたら教えて頂きたいです。できればテキストファイル等に保存したいと考えております。よろしくお願いいたします。 開発環境はイエローソフトのYellow IDE、通信方法はUSBを用いております。

  • ビット幅とその出力について

    C言語を習い始めた者ですが、ビット幅とその出力についてわからないことが二つでてきました。以下のソースコードを見てください。 #include <stdio.h> int main(void) { char ss[] = "ABCDEF"; void *vpt; int idt; vpt = ss; idt = * (char *)vpt; printf("char:%x\n", idt); idt = *(int *)vpt; printf("char:%x\n", idt); return 0; } 出力結果は char:41 char:44434241 となります。 一つ目のわからないことは char:41 についてです。私はchar型のビット幅は8ビットで文字ABの16進数を出力すると予想していました。ところが結果は 文字A の16進数の41のみが出力されました。Aの二進数は 1010、 Bの二進数は1011で それぞれ4ビットずつ持っていて合わせて8ビットになるのでそう考えていました。よくわかりませんが結果から、文字一文字に対して8ビットつまり1バイトに相当するのでしょうか? 二つ目は char:44434241 についてです。一つ目の質問に書いた推測が正しければ1文字を1バイトと考えて16進数にすると Aは41 Bは42 Cは43 Dは44 になります。しかしポインタの先頭のアドレスはAになっているはずなのになぜか出力は char:41424344 ではなくchar:44434241になっています。順序が逆になっているのでしょうか? Cをはじめたばかりなので基本的なところがわかっていないかもしれませんが、説明に不足があればつけたしますのでどうかよろしくお願いします。 

  • ストップウォッチ

    油圧シリンダの弁をADボードを用いて外乱(構造物の地震による揺れ)を採取し、それに対してPID制御で調節する研究をしています。この制御は、あらかじめサンプリングクロックを設定し、あるサンプリング数に達したら、その度にswitch文を用いてを制御イベントが発生するプログラムとなっています。しかし、大まかには出来たのですがサンプリング周期がまだ目標には達していなく(目標サンプリング周期1ms)、プログラムをいじっても本当に改善されているのかわかりません。 そこで、このイベントが1回発生するために要する時間を知るため、制御ソフトのダイアログ上に0.001秒オーダーのストップウォッチを付けたいと思っていますが、何か参考になるサイト等はございますか。 上述の通り、サンプリング周期が数msオーダーとなるので、0.001秒オーダーのものが必要となります。 ちなみに使用言語はVC6のMFCを使用しています。また、PC環境等は影響するのでしょうか? よろしくお願いします。

  • PIC18F2550・コンパイルできない(再掲)

    初めて投稿します。 技術職(機械系)の会社員です。 マイコンプログラム作成歴:約3ヶ月のほぼド素人です。 現在、会社の技術研修でPIC18F2550を使ったライントレーサの動作プログラムを作成しています。先日までPIC16F84A&88でのプログラミングを行なっており、基本は理解できているつもりです。 …が、これまで見た事のないエラーコードが出てしまい、理由がわからず困っています。 エラーコードは、[1101]lvalue required と[1105]symbol '○○○' has not been defined というもので、コンパイラのユーザーガイドを見ると、変数(GIE,LATA0等)の認識ができない?エラーのようです。ヘッダーファイルのインクルードもしており、これまでの84A&88では出なかったエラーです。 webも調べましたが、わかりませんでした。 作成環境はMPLAB V8.36、MPLAB C18コンパイラV3.33 です。 エラーメッセージ画面添付、ソースコード掲載しますので、PICプログラムに精通されている方、間違い部分をご教授頂けないでしょうか? 何卒ご協力のほどよろしくお願いします。 --【以下、コード抜粋】-- //●使用マイコン:PIC18F2550 //===《初期設定》=== //---<ヘッダーファイル>--- #include<p18f2550.h> #include"delays.h" //---<コンフィグレーション>--- #pragma config PLLDIV = 5 #pragma config CPUDIV = OSC1_PLL2 #pragma config USBDIV = 2 #pragma config FOSC = HSPLL_HS #pragma config FCMEN = OFF #pragma config IESO = OFF #pragma config PWRT = ON #pragma config BOR = OFF #pragma config BORV = 3 #pragma config VREGEN = OFF #pragma config WDT = OFF #pragma config WDTPS = 1 #pragma config MCLRE = ON #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF #pragma config CCP2MX = ON #pragma config STVREN = OFF #pragma config LVP = OFF #pragma config XINST = OFF #pragma config DEBUG = OFF #pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF #pragma config CPB = OFF, CPD = OFF #pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF #pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF #pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF #pragma config EBTRB = OFF //---<関数宣言>--- void ioport(void); void interr(void); void pwm_settei(void); void move_A(void); void move_B(void); void delay_ms(long); //---<変数宣言>--- int c_flg = 0; //変数「c_flg」を宣言 //------------------------------------------------------------ //===《動作プログラム》=== //---<メイン関数>--- void main() { ioport(); interr(); pwm_settei(); while(1) { move_A(); } } //---<サブルーチン>--- void ioport(void) //[入出力ポート初期設定] { ADCON1 = 0b00001111; //A/D設定:全ポートデジタル TRISA = 0b00000000; //ポートA・I/O設定 TRISB = 0b11111111; //ポートB・I/O設定 TRISC = 0b00110000; //ポートC・I/O設定 } void interr(void) //[割り込み初期設定] { GIE = 1; //グローバル割り込み設定:許可 TMR2IE = 1; //タイマ2割り込み設定:許可 } --【途中省略】-- void move_A(void) //[動作A(直線&曲線走行モード)] { switch(PORTB) { case 0b01000000 : //センサB(内左)認識 CCPR1L = 100; //CCP1 Duty値設定 CCPR2L = 30; //CCP2 Duty値設定 LATC7 = 1; //モータR1:正転 LATA0 = 1; //モータL1:正転 LATC6 = 1; //モータR2:ON LATA1 = 1; //モータL2:ON break; --【以下続く】--

  • スタンバイ状態に移行するのを検知したい

    VC++2008、XP~Win7で動作するプログラムを作成しています。 常駐するプログラムで、スタンバイ状態に移行する場合に特定の処理をさせたいのですが、検知することは可能でしょうか? OnSessionChangeでいけるかと思ったのですが、スタンバイ状態に入った場合には通っていないようで (デバッガとまらない、デバッグ文も出ない)、似たような関数も検索不足かもしれませんが見つかりませんでした・・・。 よろしければご教授願います。

  • シリアル通信のデータ欠けについて

    シリアル通信のデータ欠けについて教えてください。 WindowsXP上でシリアル通信「115200bps、8、None(ODD、EVEN)、1」の設定で、1ms毎に12バイトの送受信を行っているのですが、1分ほど受信すると、データ欠けが発生します。 受信プログラムはこの問題が発覚してから、受信したデータを変数にバッファリングし、保存ボタンを押してから、ログファイルへ保存するシンプルなプログラムを作成し、確認しています。 「切り分けた内容」 1、57600bpsでも発生する 2、VB6、VisualStudio2008 C#で作成したツール及びフリーソフト(SerialDebugger)でも、データ欠けが発生する 3、RS232Cラインモニタ(キャロちゃん)で確認すると、データ欠けは発生していないので、受信側の問題と判断しています。 4、送信間隔を50msと遅くしても発生する 5、RS232C及び、USB変換したものどちらでも発生する 6、9600bpsでは、発生しない(同じデータ数での判断) 7、ケーブル長は1mほど ちなみに通信時間に余裕が無い為、チェックサムやハンドシェイクなどの機能は、入れられません。 一般的にWindowsでシリアルの高速受信を行うと、データ欠けが発生するのが当たり前なのでしょうか?

  • PIC18F2550・コンパイルできない(再掲)

    初めて投稿します。 技術職(機械系)の会社員です。 マイコンプログラム作成歴:約3ヶ月のほぼド素人です。 現在、会社の技術研修でPIC18F2550を使ったライントレーサの動作プログラムを作成しています。先日までPIC16F84A&88でのプログラミングを行なっており、基本は理解できているつもりです。 …が、これまで見た事のないエラーコードが出てしまい、理由がわからず困っています。 エラーコードは、[1101]lvalue required と[1105]symbol '○○○' has not been defined というもので、コンパイラのユーザーガイドを見ると、変数(GIE,LATA0等)の認識ができない?エラーのようです。ヘッダーファイルのインクルードもしており、これまでの84A&88では出なかったエラーです。 webも調べましたが、わかりませんでした。 作成環境はMPLAB V8.36、MPLAB C18コンパイラV3.33 です。 エラーメッセージ画面添付、ソースコード掲載しますので、PICプログラムに精通されている方、間違い部分をご教授頂けないでしょうか? 何卒ご協力のほどよろしくお願いします。 --【以下、コード抜粋】-- //●使用マイコン:PIC18F2550 //===《初期設定》=== //---<ヘッダーファイル>--- #include<p18f2550.h> #include"delays.h" //---<コンフィグレーション>--- #pragma config PLLDIV = 5 #pragma config CPUDIV = OSC1_PLL2 #pragma config USBDIV = 2 #pragma config FOSC = HSPLL_HS #pragma config FCMEN = OFF #pragma config IESO = OFF #pragma config PWRT = ON #pragma config BOR = OFF #pragma config BORV = 3 #pragma config VREGEN = OFF #pragma config WDT = OFF #pragma config WDTPS = 1 #pragma config MCLRE = ON #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF #pragma config CCP2MX = ON #pragma config STVREN = OFF #pragma config LVP = OFF #pragma config XINST = OFF #pragma config DEBUG = OFF #pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF #pragma config CPB = OFF, CPD = OFF #pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF #pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF #pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF #pragma config EBTRB = OFF //---<関数宣言>--- void ioport(void); void interr(void); void pwm_settei(void); void move_A(void); void move_B(void); void delay_ms(long); //---<変数宣言>--- int c_flg = 0; //変数「c_flg」を宣言 //------------------------------------------------------------ //===《動作プログラム》=== //---<メイン関数>--- void main() { ioport(); interr(); pwm_settei(); while(1) { move_A(); } } //---<サブルーチン>--- void ioport(void) //[入出力ポート初期設定] { ADCON1 = 0b00001111; //A/D設定:全ポートデジタル TRISA = 0b00000000; //ポートA・I/O設定 TRISB = 0b11111111; //ポートB・I/O設定 TRISC = 0b00110000; //ポートC・I/O設定 } void interr(void) //[割り込み初期設定] { GIE = 1; //グローバル割り込み設定:許可 TMR2IE = 1; //タイマ2割り込み設定:許可 } --【途中省略】-- void move_A(void) //[動作A(直線&曲線走行モード)] { switch(PORTB) { case 0b01000000 : //センサB(内左)認識 CCPR1L = 100; //CCP1 Duty値設定 CCPR2L = 30; //CCP2 Duty値設定 LATC7 = 1; //モータR1:正転 LATA0 = 1; //モータL1:正転 LATC6 = 1; //モータR2:ON LATA1 = 1; //モータL2:ON break; --【以下続く】--

  • PIC18F2550・コンパイルできない(再掲)

    初めて投稿します。 技術職(機械系)の会社員です。 マイコンプログラム作成歴:約3ヶ月のほぼド素人です。 現在、会社の技術研修でPIC18F2550を使ったライントレーサの動作プログラムを作成しています。先日までPIC16F84A&88でのプログラミングを行なっており、基本は理解できているつもりです。 …が、これまで見た事のないエラーコードが出てしまい、理由がわからず困っています。 エラーコードは、[1101]lvalue required と[1105]symbol '○○○' has not been defined というもので、コンパイラのユーザーガイドを見ると、変数(GIE,LATA0等)の認識ができない?エラーのようです。ヘッダーファイルのインクルードもしており、これまでの84A&88では出なかったエラーです。 webも調べましたが、わかりませんでした。 作成環境はMPLAB V8.36、MPLAB C18コンパイラV3.33 です。 エラーメッセージ画面添付、ソースコード掲載しますので、PICプログラムに精通されている方、間違い部分をご教授頂けないでしょうか? 何卒ご協力のほどよろしくお願いします。 --【以下、コード抜粋】-- //●使用マイコン:PIC18F2550 //===《初期設定》=== //---<ヘッダーファイル>--- #include<p18f2550.h> #include"delays.h" //---<コンフィグレーション>--- #pragma config PLLDIV = 5 #pragma config CPUDIV = OSC1_PLL2 #pragma config USBDIV = 2 #pragma config FOSC = HSPLL_HS #pragma config FCMEN = OFF #pragma config IESO = OFF #pragma config PWRT = ON #pragma config BOR = OFF #pragma config BORV = 3 #pragma config VREGEN = OFF #pragma config WDT = OFF #pragma config WDTPS = 1 #pragma config MCLRE = ON #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF #pragma config CCP2MX = ON #pragma config STVREN = OFF #pragma config LVP = OFF #pragma config XINST = OFF #pragma config DEBUG = OFF #pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF #pragma config CPB = OFF, CPD = OFF #pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF #pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF #pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF #pragma config EBTRB = OFF //---<関数宣言>--- void ioport(void); void interr(void); void pwm_settei(void); void move_A(void); void move_B(void); void delay_ms(long); //---<変数宣言>--- int c_flg = 0; //変数「c_flg」を宣言 //------------------------------------------------------------ //===《動作プログラム》=== //---<メイン関数>--- void main() { ioport(); interr(); pwm_settei(); while(1) { move_A(); } } //---<サブルーチン>--- void ioport(void) //[入出力ポート初期設定] { ADCON1 = 0b00001111; //A/D設定:全ポートデジタル TRISA = 0b00000000; //ポートA・I/O設定 TRISB = 0b11111111; //ポートB・I/O設定 TRISC = 0b00110000; //ポートC・I/O設定 } void interr(void) //[割り込み初期設定] { GIE = 1; //グローバル割り込み設定:許可 TMR2IE = 1; //タイマ2割り込み設定:許可 } --【途中省略】-- void move_A(void) //[動作A(直線&曲線走行モード)] { switch(PORTB) { case 0b01000000 : //センサB(内左)認識 CCPR1L = 100; //CCP1 Duty値設定 CCPR2L = 30; //CCP2 Duty値設定 LATC7 = 1; //モータR1:正転 LATA0 = 1; //モータL1:正転 LATC6 = 1; //モータR2:ON LATA1 = 1; //モータL2:ON break; --【以下続く】--