7セグで0から9まで順番に出力するプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ブルーロック

7セグで0から9まで順番に出力するプログラム

#1

投稿記事 by ブルーロック » 1年前

7セグで1秒おきに0~9まで順番に出力するプログラムを組みたいです。初心者なのであまり分かりません。間違えを教えて頂きたいです。
データシート→https://akizukidenshi.com/download/ds/l ... 547AJG.pdf

#include <xc.h>
#include "config.h"
#define FCY 4000000
#include <libpic30.h>

void setup() {

OSCCON = 0x0000;
CLKDIV = 0x0000;
AD1PCFG = 0xFFFF;
TRISA = 0xffff;
TRISB = 0xffff;

TRISBbits.TRISB7 = 0;
TRISAbits.TRISA0 = 0;
TRISBbits.TRISB0 = 0;
TRISBbits.TRISB2 = 0;
TRISBbits.TRISB4 = 0;
TRISBbits.TRISB5 = 0;
TRISBbits.TRISB9 = 0;
}
int main(){
int num (0)=LATBbits.LATB4 = 1; //7?A
LATBbits.LATB5 = 1; //6?B
LATBbits.LATB2 = 1; //4?C
LATBbits.LATB0 = 1; //2?D
LATAbits.LATA0 = 1; //1?E
LATBbits.LATB7 = 1; //9?F
int num (1)=LATBbits.LATB5 = 1; //6?B
LATBbits.LATB2 = 1; //4?C
int num (2)=LATBbits.LATB4 = 1; //7?A
LATBbits.LATB5 = 1; //6?B
LATBbits.LATB0 = 1; //2?D
LATAbits.LATA0 = 1; //1?E
LATBbits.LATB9 = 1; //10?G
int num (3)=LATBbits.LATB4 = 1; //7?A
LATBbits.LATB5 = 1; //6?B
LATBbits.LATB2 = 1; //4?C
LATBbits.LATB0 = 1; //2?D
LATBbits.LATB9 = 1; //10?G
int num (4)=LATBbits.LATB5 = 1; //6?B
LATBbits.LATB2 = 1; //4?C
LATBbits.LATB7 = 1; //9?F
LATBbits.LATB9 = 1; //10?G
int num (5)=LATBbits.LATB4 = 1; //7?A
LATBbits.LATB2 = 1; //4?C
LATBbits.LATB0 = 1; //2?D
LATBbits.LATB7 = 1; //9?F
LATBbits.LATB9 = 1; //10?G
int num (6)=LATBbits.LATB4 = 1; //7?A
LATBbits.LATB2 = 1; //4?C
LATBbits.LATB0 = 1; //2?D
LATAbits.LATA0 = 1; //1?E
LATBbits.LATB7 = 1; //9?F
LATBbits.LATB9 = 1; //10?G
int num (7)=LATBbits.LATB4 = 1; //7?A
LATBbits.LATB5 = 1; //6?B
LATBbits.LATB2 = 1; //4?C
LATBbits.LATB7 = 1; //9?F
int num (8)=LATBbits.LATB4 = 1; //7?A
LATBbits.LATB5 = 1; //6?B
LATBbits.LATB2 = 1; //4?C
LATBbits.LATB0 = 1; //2?D
LATAbits.LATA0 = 1; //1?E
LATBbits.LATB7 = 1; //9?F
LATBbits.LATB9 = 1; //10?G
int num (9)=LATBbits.LATB4 = 1; //7?A
LATBbits.LATB5 = 1; //6?B
LATBbits.LATB2 = 1; //4?C
LATBbits.LATB0 = 1; //2?D
LATBbits.LATB7 = 1; //9?F
LATBbits.LATB9 = 1; //10?G

}
void loop(){
0();
__delay_ms(1000);
1();
__delay_ms(1000);
2();
__delay_ms(1000);
3();
__delay_ms(1000);
4();
__delay_ms(1000);
5();
__delay_ms(1000);
6();
__delay_ms(1000);
7();
__delay_ms(1000);
8();
__delay_ms(1000);
9();

}

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 7セグで0から9まで順番に出力するプログラム

#2

投稿記事 by みけCAT » 1年前

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
ブルーロック さんが書きました:
1年前
間違えを教えて頂きたいです。
このプログラム?の言語は何でしょうか?
C言語やC++では、

コード:

int num (0)=LATBbits.LATB4 = 1;
のような書き方はしません。 (少なくとも普通はしないと思います)
また、C言語やC++の識別子の最初の文字に数字は使えないので、

コード:

0();
のような書き方はできません。
もしこのプログラム?がC言語またはC++のつもりなのであれば、関数の作り方を学んだほうがいいでしょう。
たとえば
自作関数を作る - 苦しんで覚えるC言語
など。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 7セグで0から9まで順番に出力するプログラム

#3

投稿記事 by あたっしゅ » 1年前

東上☆海美☆「

コード:

#include <xc.h>
// 略
#include <libpic30.h>
から、PIC マイコン/コントローラ と推測。
PIC マイコン/コントローラなら、ハードウエアの回路図もないと、わからんのでは ?
7 セグメント LED を、直接、コントロールしてるのか
デコーダ通して 7 セグメント LED こんとろーるしてんのかも、わからん。

コード:

void loop(){
    0();
        __delay_ms(1000);
    1();
        __delay_ms(1000);
    2();
        __delay_ms(1000);
    3();
        __delay_ms(1000);
    4();
        __delay_ms(1000);
    5();
        __delay_ms(1000);
    6();
        __delay_ms(1000);
    7();
        __delay_ms(1000);
    8();
        __delay_ms(1000);
    9();
}
は、

コード:

void loop() {
    int t=0;

    while( 1 ) {
        switch( t % 10 ) {
        case 0:
            // 0 の時の処理;
            break;

        case 1:
            // 1 の時の処理;
            break;

        case 2:
            // 2 の時の処理;
            break;

        case 3:
            // 3 の時の処理;
            break;

        case 4:
            // 4 の時の処理;
            break;

        case 5:
            // 5 の時の処理;
            break;

        case 6:
            // 6 の時の処理;
            break;

        case 7:
            // 7 の時の処理;
            break;

        case 8:
            // 8 の時の処理;
            break;

        case 9:
            // 9 の時の処理; 
            break;
        }
        __delay_ms(1000);

        t++;
        if( t>9 ) { t=0; }
    }
}
のつもりなのではないかと、エスパーしてみたみみ。
最後に編集したユーザー あたっしゅ on 2022年9月30日(金) 16:34 [ 編集 1 回目 ]
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

返信

“C言語何でも質問掲示板” へ戻る