質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

583閲覧

マイコン制御 ダイナミック点灯

onGu

総合スコア21

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/09/16 11:12

編集2017/09/16 14:22

#ifdef __USE_CMSIS
#include "LPC11xx.h"
#include"ad.h"
#endif

#include <cr_section_macros.h>

int main(void) {
unsigned int sum[4];//
const unsigned int seg[10] = {
//0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
0x77,0x06,0xB3,0x97,0xC6,0xD5,0xF5,0x07,0xF7,0xD7
};
int ad;
int i ;

gpio_1(); ad_init();//AD while(1) { ad=ad_get(0);//AD結果 sum[3] = ad/1000; sum[2] = (ad%1000)/100; sum[1] = (ad%100)/10; sum[0] = ad%10; for(i=0;i<10;i++){ LPC_GPIO1->DATA =(LPC_GPIO1->DATA &~0xf7)| seg[sum[0]];//1桁目表示 LPC_GPIO0->DATA =(LPC_GPIO0->DATA &~0x8e)| 0x02; //gpio01,2,3,7 桁切り替 timer_ms(100); LPC_GPIO1->DATA =(LPC_GPIO1->DATA &~0xf7)| seg[sum[1]];//2桁目表示 LPC_GPIO0->DATA =(LPC_GPIO0->DATA &~0x8e)| 0x04; //gpio01,2,3,7 桁切り替 timer_ms(100); LPC_GPIO1->DATA =(LPC_GPIO1->DATA &~0xf7)| seg[sum[2]];//3桁目表示 LPC_GPIO0->DATA =(LPC_GPIO0->DATA &~0x8e)| 0x08; //gpio01,2,3,7 桁切り替 timer_ms(100); LPC_GPIO1->DATA =(LPC_GPIO1->DATA &~0xf7)| seg[sum[3]];//4桁目表示 LPC_GPIO0->DATA =(LPC_GPIO0->DATA &~0x8e)| 0x80; //gpio01,2,3,7 桁切り替 timer_ms(100); } } return 0 ;

}
LPC1114 28pinDIPのマイコンです。

7segLEDをダイナミック点灯させたいんですが、カソードコモンを桁切り替えのIOをTrドライブ
させています。
IOをTrのベースにつなげた状態でマイコンに書き込みするとうまくいかず、IDEも書き込みご一時停止状態になります。ベースにつながるIOを外して書き込みすると正常に書き込みできるのですが、ベースのIOを外して電源を入れその後ベースのIOをつなげないと動作しません。
ポートの出力電流の制限抵抗は確認してます。
マイコン講習の際、SW入力をHにしないと書き込みがうまくできないって言っていたのでこのマイコン特有のものなのか講師のプログラムのせいなのかわかりません。このプログラムは講師の
をイジったものです。今時のマイコンにIOをH状態にしないと正常に書き込めないなんてことはないと思うのですが。
プログラムを見ていただいて誤りやアドバイスお願いします。
よろしくお願いします。

追記、電池電圧が低く電流不足でまともに動いていませんでした。
また、3桁だけにすると動いて4桁にすると動かなかった。
ブレッドボードの一番遠い桁だったので配線の関係かと。。。
半田付けで配線の長さを均一にして確認しようと思ってます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

恥ずかしながら自己解決しました。増幅したい電流に対してのTrのベース抵抗が低すぎました。
なのでTrが開きっぱなしだったようです。

投稿2017/09/17 14:10

onGu

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

LEDを駆動するトランジスタは、GPIO1の何番ピンにつながっていますか?このプログラムを見ると第0,1,2,7ビット端子につながっていると読めますが、ただしい?

実は0,1,2,3 番ピンにつながっているのだとすると、「3桁だとOKだが4桁だとNG]となりそうです。

投稿2017/09/17 08:54

a_saitoh

総合スコア702

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onGu

2017/09/17 14:09

ありがとうございます。切り替えはGPIO0_0~7の内1,2,3,7なので合ってると思います。 恥ずかしながら自己解決しました。増幅したい電流に対してのTrのベース抵抗が低すぎました。 なのでTrが開きっぱなしだったようです。 アドバイスありがとうございました。
a_saitoh

2017/09/17 14:44

プログラムが問題ないなら回路図を出してもらう必要があるなとおもってましたが、事故解決されたようでおめでとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問