ショッピングモール  


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.3065

初めまして。LED点灯
投稿者---初心者(2004/11/25 23:21:33)


LEDを左へ、右へ、左へ、右へ・・・とシフトするプログラムはどうすれば出来るのでしょうか?下に実行結果を図で示しておきました。
お分かりに方は教えていただけないでしょうか?
段階3○×××
段階2×○××
段階1××○×
初期××××
段階6×××○
段階5××○×
段階4×○××



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:初めまして。LED点灯 3066 RAPT 2004/11/25 23:33:36
<子記事> Re:初めまして。LED点灯 3069 もぐりん 2004/11/26 08:33:06
<子記事> Re:初めまして。LED点灯 3070 monkey 2004/11/26 10:02:42


No.3066

Re:初めまして。LED点灯
投稿者---RAPT(2004/11/25 23:33:36)


>お分かりに方は教えていただけないでしょうか?
何を?


この投稿にコメントする

削除パスワード

No.3067

Re:初めまして。LED点灯
投稿者---初心者(2004/11/25 23:46:44)


上の図の実行結果になるプログラムです


この投稿にコメントする

削除パスワード

No.3068

Re:初めまして。LED点灯
投稿者---ぽこ(2004/11/26 01:06:38)


>上の図の実行結果になるプログラムです

誰も分からないかと。
「何をどうすればLEDが点灯するか」は、この場では初心者さん以外
知り得ません。
少なくともC言語自体には「このLEDを点灯」とかいう機能は存在しません。
この手の操作は、お使いのハードウェアにべったり依存しています。



この投稿にコメントする

削除パスワード

No.3069

Re:初めまして。LED点灯
投稿者---もぐりん(2004/11/26 08:33:06)


質問する際は、【掲示板ご利用上の注意】を熟読してから質問してください。
「※環境(OSとコンパイラ)や症状は具体的に詳しく!」は読めませんか?
組み込み機器の開発の場合は、使用しているマイコンとコンパイラ、
使用しているLEDのスペックなどのハードウェアの環境を提示しないと誰も答えられません。
単純に考えれば、LEDの点灯をタイマで監視すればできると思いますが、
分かりますか?



この投稿にコメントする

削除パスワード

No.3070

Re:初めまして。LED点灯
投稿者---monkey(2004/11/26 10:02:42)


>LEDを左へ、右へ、左へ、右へ・・・とシフトするプログラム

実際にLEDを制御するのはハードウェアに依存しますから、誰もお答えできないでしょう。
コンピュータの画面上で○×を表示することによってシミュレートするということなら検討できます。


この投稿にコメントする

削除パスワード

No.3084

Re:初めまして。LED点灯
投稿者---monkey(2004/11/26 19:29:55)


> コンピュータの画面上で○×を表示することによってシミュレートする

#include <stdio.h>

#define LEDS    4 // LED個数
#define FREQ    3 // シフト回数
#define OFFSET  1 // 1回あたりのシフト量

int shift( int pos, int off );
void draw( int pos );

int main( void )
{
    int pos = 0; // 点灯するLEDの位置(0の位置は表示されない)
    int i;
    for( i = 0; i < FREQ; i++ ){ // 右(+)方向にOFFSETずつFREQ回シフト
        draw( pos = shift( pos, OFFSET ) );
    }
    draw( pos = 0 );             // 初期状態
    for( i = 0; i < FREQ; i++ ){ // 左(-)方向にOFFSETずつFREQ回シフト
        draw( pos = shift( pos, -OFFSET ) );
    }
    return 0;
}

#define SIZE  (LEDS+1)

int shift( int pos, int off )
{
    pos += off;
    return pos >= 0 ? pos % SIZE : pos + SIZE * ( ( -pos - 1 ) / SIZE + 1 );
}

void draw( int pos )
{
    int i;
    for( i = 1; i < SIZE; i++ ){
        printf( "%s", i == pos ? "○" : "×" );
    }
    printf( "\n" );
}

/* 実行結果:
○×××
×○××
××○×
××××
×××○
××○×
×○××
*/



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity