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間の信号のやりとりについて...
-
AVRマイコンの未使用ピンの処理...
-
シーケンスのプログラムについ...
-
USBからの電源供給をコントロー...
-
EnumとType
-
arduinoで複数のサーボを動かし...
-
マイコンボード上のポートと端...
-
<単安定マルチバイブレータ> 単...
-
AVRでサーボモータの制御プログ...
-
nsecオーダーの信号の時間計測...
-
H8/3664Fでパルス幅測定
-
PICでネットワーク監視(基板)
-
Picマイコンについて質問します...
-
PICマイコンによるI2C通信について
-
H8マイコンの端子の数字の端子...
-
制御系とアプリ系
-
C言語を用いた組込みシステム学...
-
VBでUSBポートからの入力を制御...
-
PID調節器を用いる制御系につい...
-
ディスプレイ上で起こる2重表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
Picマイコンについて質問します...
-
シーケンスのプログラムについ...
-
USBからの電源供給をコントロー...
-
<単安定マルチバイブレータ> 単...
-
家電のcpu
-
VBでUSBポートからの入力を制御...
-
C++でLEDを点灯させるプログラム
-
arduinoで複数のサーボを動かし...
-
マイコンボード上のポートと端...
-
PCのUSBバスパワーの制御
-
デジタル時計(アラーム付)を...
-
EnumとType
-
AVRマイコンの未使用ピンの処理...
-
フィードバック制御とフィード...
-
コンピューターでラジコン操作?
-
H8マイコンの端子の数字の端子...
-
ATTINY13のリセット端子は無効...
-
picとfpga。
-
三菱シーケンサのプログラムの...
おすすめ情報