PIC16F88マイコンのC言語プログラムで質問です。次の条件で、LEDの点灯移動制御をしたいです。
①プログラム実行と同時に、1つのLEDを右端(0ビット目)から左端(7ビット目)へ、次に左端から右端へ点灯制御する。
②これを無限に繰り返す。
③ただし、タクトスイッチ1(どのスイッチでも良い)を押すと、移動速度が大きくなり、タクトスイッチ2(タクトスイッチ1以外のスイッチ)を押すと、移動速度は小さくなるようにする。
④移動速度の範囲は任意とするが、範囲のリミットは適切な範囲で決めることにする。
下のプログラムは未完成で、この形で作っていきたいです。右端から左端から(左端から右端)へ点灯移動する方法と、スイッチを押すと速くなったり、遅くなる方法を教えてください。
#include<pic.h>
#define _XTAL_FREQ 8000000
#define sw 0x03
__CONFIG(
MCLRDIS
& PWRTEN
& BOREN
& UNPROTECT
& WDTDIS
& LVPDIS
& INTIO
& CCPRB0
& DEBUGDIS
);
int sw_on_check(void)
{
if(PORTA & sw != 0)
return(PORTA & sw);
else return 0;
}
waitms(unsigned int k)
{
unsigned int i;
for(i=0; i<k; i++)
__delay_ms(1);
}
int sw_waitms(unsigned int k)
{
unsigned int i;
int dt;
dt = 0;
for(i=0; i<k; i++){
dt = PORTA & sw;
if(dt != 0)
break;
__delay_ms(1);
}
return dt;
}
void chata()
{
waitms(50);
while(PORTA & sw != 0);
waitms(50);
}
main(){
OSCCON = 0x70;
ANSEL = 0x00;
TRISA = sw;
TRISB = 0x00;
PORTB = 0x00;
unsigned char dt;
dt = 1;
while(1){
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ここの動画のようなことをやりたいのだとおもいますが
プログラムから
PortAがスイッチの入力用で
PortBが出力だと思いますけど
http://physics.cocolog-nifty.com/weblog/2012/05/ …
を参考に
PORTB = PORTB<<1;PORTBの内容を左に1ビットだけシフトのばあい
PORTB = PORTB>>1;PORTBの内容を右に1ビットだけシフトのばあい
速度調整はwaitを入れて数字を大きくすればゆっくり、小さくすれば早くなります
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語で%を使わない余りの出し方
-
組織的ディザ法のプログラムが...
-
C言語の問題
-
条件が多い場合
-
argvのNULLチェック
-
intとlongは同じ?
-
複数の共有メモリの作成
-
C言語で簡単なパックマンゲーム...
-
2次関数プログラムを描写する...
-
3のつく数と3の倍数を表示 C言語
-
C++で表を作成したいのです ...
-
C#メール受信から件名、本文を...
-
再起呼び出しの回数をカウント...
-
コマンドプロンプトのウィンド...
-
| (or) を使った関数の引数の作...
-
whileとifを使い偶数を出すには
-
opencvとmbedのシリアル通信で...
-
ヒストグラム均等化処理プログラム
-
遺伝的アルゴリズム
-
C++ bmp 透過処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報