D
david90
Guest
ここで私は私の完成コードは(
<img src=¥"http://www.edaboard.com/images/smiles/icon_neutral.gif¥" alt=¥"中立¥" border=¥"0¥" />
)このコードは、コンパイラのGCCですのWINAVR、それはat90s2313マイコンですのアトメル。
コード:#は<avr/io.h>含まれて
#は<avr/interrupt.h>含まれて
#は<avr/signal.h>含まれてボイド遅延(ボイド);
ボイドdisplay7seg(ボイド);揮発性uint16_tにパルス= 0、時速= 0、mph_result = 0;
int型hun_mi、ten_mi、one_mi、hun_mph、ten_mph、one_mph;
const char型segment_table [10] =
(
0x40の、0x79、0x24が、0x30を、0x19、0x12、0x2に、0x78、0、0x10の
);メイン(ボイド)int型
(
DDRB = 0xffには、/ /出力としてポートBを設定する
DDRD = 0x77は;
TCCR0 = 0x03に/ /遅延タイマTCNT1H = 0xC9;
TCNT1L = 0x85;
TCCR1B = 0x5の/ / clk/1024 TCCR1B = 0x5の/ / clk/1024
TIMSK = 0x80に。MCUCR = 0x08に。
SREG = 0x80に。
GIMSK = 0x80に。
(1)中に/ /永遠に
(
()display7seg;
)
戻り0;
)ボイドの遅延は(ボイド)/ / MHzの4の65ミリ秒の遅延をプロデュース
(
TCNT0 = 0x7Fの;
(中!(TIFR&0x02)は);
/ /タイマー0オーバーフローフラグを設定するのを待つ
TIFR = 0x02の/ /クリアオーバフローフラグ
)
ボイドdisplay7seg(ボイド)
(hun_mi =(パルス)/ 100;
ten_mi =((パルス)%100)/ 10;
one_mi =((パルス)%100)%10;hun_mph =(mph_result)/ 100;
ten_mph =((mph_result)%100)/ 10;
one_mph =((mph_result)%100)%10;ポートB =はsegment_table [hun_mi];
PORTD = 0x7Bが発生。
遅延();
ポートB =はsegment_table [ten_mi];
PORTD = 0x7D;
遅延();
ポートB =はsegment_table [one_mi];
PORTD = 0x7Eと。
遅延();ポートB = segment_table [のhun_mphの];
PORTD = 0x6F;
遅延();
ポートB = segment_table [のten_mphの];
PORTD = 0x5F;
遅延();
ポートB = segment_table [のone_mphの];
PORTD = 0x3F;
遅延();
)割り込み(SIG_INTERRUPT1)
(
( パルス== 999)場合、
(
パルス= 0;
)
マイル ;
)
割り込み(SIG_OVERFLOW1)
(
08863 *. mph_result =時速。
マイル= 0;
TCNT1H = 0xC9;
TCNT1L = 0x61;
)
<img src=¥"http://www.edaboard.com/images/smiles/icon_neutral.gif¥" alt=¥"中立¥" border=¥"0¥" />
)このコードは、コンパイラのGCCですのWINAVR、それはat90s2313マイコンですのアトメル。
コード:#は<avr/io.h>含まれて
#は<avr/interrupt.h>含まれて
#は<avr/signal.h>含まれてボイド遅延(ボイド);
ボイドdisplay7seg(ボイド);揮発性uint16_tにパルス= 0、時速= 0、mph_result = 0;
int型hun_mi、ten_mi、one_mi、hun_mph、ten_mph、one_mph;
const char型segment_table [10] =
(
0x40の、0x79、0x24が、0x30を、0x19、0x12、0x2に、0x78、0、0x10の
);メイン(ボイド)int型
(
DDRB = 0xffには、/ /出力としてポートBを設定する
DDRD = 0x77は;
TCCR0 = 0x03に/ /遅延タイマTCNT1H = 0xC9;
TCNT1L = 0x85;
TCCR1B = 0x5の/ / clk/1024 TCCR1B = 0x5の/ / clk/1024
TIMSK = 0x80に。MCUCR = 0x08に。
SREG = 0x80に。
GIMSK = 0x80に。
(1)中に/ /永遠に
(
()display7seg;
)
戻り0;
)ボイドの遅延は(ボイド)/ / MHzの4の65ミリ秒の遅延をプロデュース
(
TCNT0 = 0x7Fの;
(中!(TIFR&0x02)は);
/ /タイマー0オーバーフローフラグを設定するのを待つ
TIFR = 0x02の/ /クリアオーバフローフラグ
)
ボイドdisplay7seg(ボイド)
(hun_mi =(パルス)/ 100;
ten_mi =((パルス)%100)/ 10;
one_mi =((パルス)%100)%10;hun_mph =(mph_result)/ 100;
ten_mph =((mph_result)%100)/ 10;
one_mph =((mph_result)%100)%10;ポートB =はsegment_table [hun_mi];
PORTD = 0x7Bが発生。
遅延();
ポートB =はsegment_table [ten_mi];
PORTD = 0x7D;
遅延();
ポートB =はsegment_table [one_mi];
PORTD = 0x7Eと。
遅延();ポートB = segment_table [のhun_mphの];
PORTD = 0x6F;
遅延();
ポートB = segment_table [のten_mphの];
PORTD = 0x5F;
遅延();
ポートB = segment_table [のone_mphの];
PORTD = 0x3F;
遅延();
)割り込み(SIG_INTERRUPT1)
(
( パルス== 999)場合、
(
パルス= 0;
)
マイル ;
)
割り込み(SIG_OVERFLOW1)
(
08863 *. mph_result =時速。
マイル= 0;
TCNT1H = 0xC9;
TCNT1L = 0x61;
)