
No.3ベストアンサー
- 回答日時:
void portb(long addt)
{
PIN_A0 = 0x01 & addt;
PIN_A1 = (0x02 & addt) >> 1;
PIN_A2 = (0x04 & addt) >> 2;
PIN_A3 = (0x08 & addt) >> 3;
...
PIN_A7 = (0x80 & addt) >> 7;
}
こーゆー事ってPICじゃ出来ないんですか?(マイコンとかDSP位しか使ったことが無いもので。)
俺ならこんな関数作っちゃいますけど。
使う時は
void portb(long addt);
void main(void)
{
long A;
A=read_adc;
portb(A);
}
って感じですかね。
output_bit(PIN_A0,y)っていうのが使ったこと無いのでよくわからないんですが、置き換えるなら多分
PIN_A1 = (0x02 & addt) >> 1; → output_bit(PIN_A1,(0x02 & addt) >> 1);
見たいな感じで動くと思います。
No.2
- 回答日時:
PIC, H8, SH などのマイコンで遊んでいる者です。
PICのCコンパイラには何をお使いですか?
> ポート制御すればいいみたいな話じゃなくてです
ぱっと見て、ポインタにポート名代入するか、switch case で振り分けるかと思ったのですが、ポートの話ではないのですね???
具体的に何をしたいのですか?
「動きません」ではなく、
1.どのような出力を期待して作ったか
2.結果はどのような出力になっているか
を書いてください。
この回答への補足
はじめまして
回答ありがとうございます
コンパイラはMPLABを使ってます
質問分かりづらくてホントすんません
具体的に言うと少し長くなるのですが
短く言うとPIC16f873のアナログ入力をA/D変換してUSBを通してVBで読むというのをしたいんです
PICの中でやりたい事はread_adcをした値を2進数にしてそれをポートBを使って出力したいんです
それでひとまず作ったプログラムで動かすことは出来たのですが、長くて...
Aはアナログ入力をぶち込んだやつです
for(x = 0; x <= 8; x++){
Y[x] = A % 2;
A = (A - Y[x]) / 2;
}
このforループの中でポートBの'x'pinに'Y[x]'←(1or0)を出力したいです
バカなプログラムですんません
他にいい方法があればそれでもいいのですが
あとswitchで分けるというのは
switch(x){
case '0': output_bit(PIN_A0,y);
...
}
って事っすか?
まだ質問が下手なことがあったらまた言ってください
No.1
- 回答日時:
質問の意図が、「定数値PIN_A0、PIN_A2、…、PIN_A5があって、変数xの値を1として、PIN_Axという記述がPIN_A1を意味するコーディング法が知りたい」という事なら、一般的なCでは無理かと(根性入れて、evalを実装するという手もありますが)。
素直に、配列PIN_Aを用意して、
PIN_A[0] = PIN_A0; (以下略)
――と初期化しといて、
output_bit( PIN_A[x], y );
――でアクセスすれば良いのでは。
外してるかな?
回答ありがとうございます
分かりづらい質問ですみませんでした
無理なんですか...
わかりました
その方法でやってみます
本当にありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でイベントフラグを使った制御をしたいんですけど set_flg(FLG,0x01) で設定した 1 2023/08/08 13:18
- 工学 高度な演習を行う「ロジック半導体」。そして、データの記憶を行う「メモリ半導体」、電気信号を制御する「 4 2023/01/10 07:04
- システム CPUの問題について 2 2022/07/09 12:04
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- 工学 1つのタクトスイッチで複数の並列回路を閉じ、アースにつなげることができるスイッチはありますか。 2 2022/08/06 10:38
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) 別インスタンスのエクセルを制御したい 1 2023/05/10 02:03
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンピューターでラジコン操作?
-
PLC間の信号のやりとりについて...
-
VBでUSBポートからの入力を制御...
-
arduinoでミスト機を自作したい
-
ディスプレイ上で起こる2重表...
-
HDMIとHDの違いはなんですか? ...
-
ワークグループとドメインの共存
-
IIS環境にてJAVAを使用したいの...
-
「かりん」を数字で表すとした...
-
基板の内層配線の浮遊容量につ...
-
RS232C 通信でエラー(受信が正...
-
HDMI接続のパソコン液晶モニタ...
-
HyperVで仮想マシンがネットワ...
-
USB-C to HDMI
-
XBOXの画面解像度変更ができま...
-
ゲーミングPCでの質問です ゲー...
-
デスクトップPCからモニターに...
-
ニンテンドーswitchとPCモニタ...
-
ADSL環境でのFAX送信
-
テレビから”キーン”と耳鳴りの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
USBからの電源供給をコントロー...
-
Picマイコンについて質問します...
-
マイコンボード上のポートと端...
-
VBでUSBポートからの入力を制御...
-
シーケンスのプログラムについ...
-
AVRマイコンの未使用ピンの処理...
-
EnumとType
-
PCのUSBバスパワーの制御
-
RS422通信について
-
H8マイコンの端子の数字の端子...
-
組み込み マイコン 部品をミス...
-
H8マイコンでルーレットゲーム
-
情報処理システムについてです
-
汎用入出力ポートの制御方法
-
RTCの通信方法について
-
VBでGP-IB
-
<単安定マルチバイブレータ> 単...
-
PICマイコン16F84Aに...
-
Visual BasicでGP-IBの通信を制...
おすすめ情報