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ランキング
-
2の補数を計算するプログラム
-
3のつく数と3の倍数を表示 C言語
-
迷路を脱出する経路探索プログ...
-
intとlongは同じ?
-
C言語で%を使わない余りの出し方
-
迷路の解を見つけるアルゴリズム
-
分数の足し算をさせるプログラ...
-
【C#】SQL文の中に変数を埋め込...
-
C++で表を作成したいのです ...
-
C言語 格子点が多角形の中にあ...
-
再起呼び出しの回数をカウント...
-
16bitで乱数を生成する方法
-
argvのNULLチェック
-
画像の拡大・縮小
-
以下のプログラムはOpenCVで画...
-
C言語でテーブル引きしたら速度...
-
PIC16F88マイコンのC言語プログ...
-
whileとifを使い偶数を出すには
-
ヌメロンのプログラム
-
条件が多い場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報