• ベストアンサー

PICのピンの割り当て、この記述は正しいのでしょうか?

Oh-Orangeの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★PIC には詳しくないがアドバイス >また"0x"は16進表記との事ですが、他に、たとえば10進や2進表記で格ピンの割り当ては可能なのでしょうか?  ↑  C 言語で記述できるのならば、8、10、16進数のいずれかで各ピンの割り当てが可能です。  例えば、10 進数で 16 を表す値を信号として送るには  8進数では『set_tris_a( 020 );』  10進数では『set_tris_a( 16 );』  16進数では『set_tris_a( 0x10 );』  となります。 ・指定の方法が 8進表記だったり、16進表記だったりするだけで上記の3つは同じ指定になります。  なお、C 言語では 2 進数の表記は出来ません。  指定できるのは 8 進数、10進数、16進数です。 ・ちなみに  8 進数は先頭が 0 から始まる 0~7 の組み合わせの数です。  10 進数は先頭が 0 から始めない 0~9 の組み合わせの数です。  16 進数は先頭が 0x から始まる 0~9,A~F,a~f の組み合わせの数です。 ・以上。今後の参考に。

chicken773
質問者

お礼

なるほど、8進、10進、16進での記述が可能なのですね。 非常に参考になりました、有難うございます!

関連するQ&A

  • PIC12F509をCCSコンパイラでコンパイルしたときにset_tris_a関数が使えない?

    いままでPIC12F683で使用していたC言語プログラミングをPIC12F509用に書き直しています。ピンも8ピンで同じで端子もほとんど同じなので、PIC12F683にあった機能端子の設定部分のプログラミング部分だけを修正すればよいと思ってやっていたのですが、どうしてもset_tris_a関数がコンパイルを通過しません。”Undefined identifier set_tris_a”というコンパイルエラーが出てきてしまいます。 プログラム中には端子を出力にしたり入力にしたりする部分が多々あるので、この関数が使えないので困っています。12F509の場合だとset_tris_a関数以外に出入力を設定する関数というのが存在するのでしょうか? ご教授いただきますようお願い致します。

  • PICマイコンで、ピンが足りません。

    PICでちょっとした電子工作をしています。 18pinのPICを使い、スイッチの組み合わせを適宜変更し出力する回路としてを組んでいます。 PortA(8pinを全て入力/全ピンpullup) PortB(8pinを全て出力) スイッチが1~8まであり、例えば1のスイッチが押された場合、3のスイッチが押されたことにして出力するというような、 スイッチの組み合わせを変更する機能を持たせます。 このスイッチの入出力組み合わせを複数持たせることが今回の目的です。 ロータリースイッチを使い8種類の設定ができる用にするとして、割り当て設定用として新たに3ピンが必要です。 ですが、上記のようにPortAB共に全ピン利用しており、単純に割り当てることが出来ません。 これをどうにかして、利用済みのピンと共存させ18pinで済ませることができないでしょうか。 スイッチの組み合わせは、PIC起動したら変更されることがありません。 ですので、PIC起動時に一度だけロータリースイッチの状態を読めばいいことになります。 なお出力の先につながる回路は、プルアップされたアクティブローの入力端子です。

  • PICとPICの接続について

    PIC16F84Aを3個使用するのですが、仮にA、B、Cとし、入出力のピンの設定は正しくされているとします。 その場合Aの出力ピンから出ている出力線1本を、BとCの入力ピンの両方ともに接続しても問題ないのでしょうか? Aの信号(HまたはL)を、BとCに渡したいのです。

  • PIC16F819

    PIC16F819のADコンバータを使用しています。 RA0からアナログ信号を入力して、PORTBのそれぞれのピンから1bitずつ(計8bit)のデジタル信号を出力させるためのプログラムを書いてみましたが、まったく動作しません。レジスタの設定なども変えてみましたが動作しませんでした。特にPORTBを全てHighにした場合、なぜかRB6とRB7からの出力を確認することができませんでした。 動作しない原因がまったく分からないので困っています。原因が分かる方がおられましたらご教授お願いします。 #include <pic.h> __CONFIG(DEBUGEN&WDTDIS&LVPDIS&HS&PWRTEN); void init_a2d(void){  ADCON0=0x40;  ADCON1=0x40;  ADON=1; } unsigned char read_a2d(unsigned char channel){  channel&=0x07;  ADCON0&=0xC5;  ADCON0|=(channel<<3);  GODONE=1;  while(GODONE)continue;  return(ADRESH); } void main(void){  unsigned char x1;  init_a2d(); //initialise the A2D module  GIE=0; // we don't want interrupts  TRISB=0x00;     // PORTB will be used in output mode  PORTB=0x00;  x1=read_a2d(1); // sample the analog value on RA0  PORTB=x1; }

  • 電源のピンの意味。

    電源のピンの意味。 現在使っている電源の箱には、それぞれ・・ ATXメイン(20+4ピン)x1 ATX12V(4+4ピン)x1 PCI-EXPRESS(6+2ピン)x1 SerialATA(15ピン)x6 DRIVE(4ピン)x6 (↑ ちなみに、修理を出したPCショップで勧められた、サイズと言う会社のCorePower3と言う商品です。) ~ピンと表記する部分がありますが、電源を買い直したいと思うその商品には、ATx 12Vコネクター(8+4)とあります。 パソコンの知識が無い私にも、数が単純に違うから使えないのかな・・と思う訳ですが、例えば何かのコネクターみたいなのを 使ってその数の違いを合わせる(イコールのように)物と言うのは、あるのでしょうか? 例えば、8ピンを12ピンに変える・・みたいな。 検索をしつつどこかで、この表記は数字を足して12V8のように表記していたので、4+4は12V8なのかなと考えました。) この欲しいと思う電源は、取り付けられるのでしょうか? 知識が乏しいので、足りない言葉などあるかと存じますが、ぜひご教授下さい。

  • 電子工作 PIC PIC16F84A アセンブラ

    PIC16F84Aを使用して1番ピン及び2番ピン及び3番ピンが一瞬でも0Vになり、 5秒経過、6番ピンから3秒間出力、始めに戻る。 こんなようなプログラムを作りたいと思っていますが、 なにぶんPIC初心者なものでどうプログラムしたらよいか全くわかりません。 ピン入力に順序は関係なく全て0Vならカウント開始です。 5秒のカウント精度は低くても問題ありません。 5秒カウント中に1、2、3番ピンのいずれかが一瞬でも5Vになったらカウントを中止し、 始めに戻ります。 5秒カウントの6番ピンのステータスは0Vです。 6番ピン出力中は、1~3番ピンの監視は不要です。 6番ピンからの3秒出力の後は出力をやめ始めに戻ります。 開発言語はアセンブラです。

  • PICによるLED制御について

    大学の講義でPICのLED制御の課題がよくわかりません。 どなたか教えていただけないでしょうか? [問]  PIC16F84Aにおいて、動作を実現するプログラムを示せ。  メインルーチンでLED出力の点燈箇所を1秒ごとに巡回させる。   RA3=Low(OFF)のとき、左向きに巡回シフト(RLF命令)させる。   RA3=High(ON)のとき、右向きに巡回シフト(RRF命令)させる。  また割り込みルーチンによって、RA0~RA2の3ビットの値に応じて  点灯速度を変化させる(値が大きいほど速く)  ただし、ポートAは全て入力モード、ポートBはRB0以外を出力モードとし(RB0は割り込み用)、ポートBの初期出力を0000100*(LED出力の初期点燈位置は第3ビットのみ)とせよ。

  • PIC・eepromとPIN設定について

    目をとめて頂き、ありがとうございます。 さっそくですが、PICのプログラムについてとPIN設定について解らないところがありましたので、質問させていただきます。 1)シリアル通信のプログラムです。 eeprom内蔵のPICを使っているのですが、eepromに書き込んだ後に(画面に)「無事に書きこみましたよ」的な表示をさせたいのですが、ちゃんと書き込まれたかどうかがわからなくて… アセンブリでやると、レジスタのフラグ(?)をみて判断しているっぽいのですが、生憎とアセンブリはさっぱり分かりません。 c言語でもわかる方法はないものでしょうか? 2)PIN設定です。 RA5(OSC1)-->外付けで振動子つけてます RA4(OSC2)-->RA5と同じです RA3(MCLR/VPP)-->リセットICつけてます RA2(I/O)-->input設定 RA1(I/O)-->input設定 RA0(I/O)-->output設定 という設定のPICで、RA0~2は普通にI/OとしてSET_TRISできるのですが、RA3~5をどうSETしたらいいのかが分かりません。 普通のI/Oとしては使わないけど、外付けで振動子とICがついているので普通にI/OでSETしていいのか… 以上2点ですが、わかる方がいらっしゃいましたらよろしくお願いします。

  • PIC12F629のMCLRピンが出力に?

    PIC12F629でリレーをON/OFFしています。 使用ピンはGP1とMCLRのみです。 動作中にCPUに約0.8Aぐらい流れCPUが発熱(手で触れないほど)するトラブルが発生しました。 このときはMCLRピンは電源(+5V)に直結してあります。 対策としてMCLRピンから抵抗1KΩを経て+5Vへ接続することにより解決しました。 理由としての予想ですが リレーのノイズにより入力専用のMCLRピンが出力になり0出力され +5Vから(抵抗がないので)大電流が流れこんだ・・・ と思うのですが。 入力専用のMCLRピンが出力になるという仮定がへんですが 私には、そうしないと説明がつかないような気がします。 「正しい解釈(?)」を教えてください。

  • 初歩のPIC

    最近PICはじめたばかりの初心者です。 16f628Aの機能をみますとRA0~4はディジタルとアナログの入力に対応しています。A/D変換コンバーターがついているわけでもないのに、なぜアナログ入力ピンがあるんでしょうか。あっても意味がないような気がするんですが、どうゆう使い方をするんですか、おしえてください。