This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
et:examples:display:segment_display [2014/10/08 08:20] – raivo.sell | et:examples:display:segment_display [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ~~PB~~ | ||
====== Numberindikaator ====== | ====== Numberindikaator ====== | ||
- | //Vajalikud teadmised: [HW] [[et: | + | //Vajalikud teadmised: |
+ | [HW] [[et: | ||
+ | [LIB] [[et: | ||
+ | [PRT] [[et: | ||
===== Teooria ===== | ===== Teooria ===== | ||
- | [{{ : | + | [{{ : |
7-segmendiline LED numberindikaator on seitsmest number 8-kujuliselt paigutatud valgusdioodist koosnev näidik. Vastavaid LED-e (segmente) süüdates või kustutades saab nendega kuvada numbreid nullist üheksani ning mõningaid tähti. | 7-segmendiline LED numberindikaator on seitsmest number 8-kujuliselt paigutatud valgusdioodist koosnev näidik. Vastavaid LED-e (segmente) süüdates või kustutades saab nendega kuvada numbreid nullist üheksani ning mõningaid tähti. | ||
Line 26: | Line 28: | ||
<code c> | <code c> | ||
- | // Märgikaart. | + | // Märgikaart |
- | // Bitid tähistavad segmente. Madalaim | + | // Bitid tähistavad segmente, madalaim |
const unsigned char __attribute__ ((weak)) segment_char_map[11] = | const unsigned char __attribute__ ((weak)) segment_char_map[11] = | ||
{ | { | ||
Line 40: | Line 42: | ||
0b01111111, | 0b01111111, | ||
0b01100111, | 0b01100111, | ||
- | 0b01111001 | + | 0b01111001 |
}; | }; | ||
Line 46: | Line 48: | ||
void segment_display_init(void) | void segment_display_init(void) | ||
{ | { | ||
- | // Set latch, data out and clock pins as output | + | // Juhtviikude väljundiks seadmine |
pin_setup_output(segment_display_latch); | pin_setup_output(segment_display_latch); | ||
pin_setup_output(segment_display_data_out); | pin_setup_output(segment_display_data_out); | ||
Line 64: | Line 66: | ||
} | } | ||
- | // Number | + | // Numbri |
map = segment_char_map[digit]; | map = segment_char_map[digit]; | ||
- | // Lukustussignaal maha | + | // Lukustussignaali madalaks muutmine |
pin_clear(segment_display_latch); | pin_clear(segment_display_latch); | ||
- | // Bittide saatmine. Kõrgeim | + | // Bittide saatmine, kõrgeim |
for (i = 7; i >= 0; i--) | for (i = 7; i >= 0; i--) | ||
{ | { | ||
Line 76: | Line 78: | ||
pin_set_to(segment_display_data_out, | pin_set_to(segment_display_data_out, | ||
- | // Taktsignaal kõrgeks | + | |
+ | // Taktsignaali | ||
pin_set(segment_display_clock); | pin_set(segment_display_clock); | ||
_delay_us(1); | _delay_us(1); | ||
- | // Taktsignaal | + | // Taktsignaali |
pin_clear(segment_display_clock); | pin_clear(segment_display_clock); | ||
_delay_us(1); | _delay_us(1); | ||
} | } | ||
- | // Lukustussignaal peale | + | // Lukustussignaali kõrgeks muutmine |
pin_set(segment_display_latch); | pin_set(segment_display_latch); | ||
} | } | ||
Line 109: | Line 112: | ||
// Lõputu tsükkel | // Lõputu tsükkel | ||
- | while (true) | + | while (1) |
{ | { | ||
- | // Kuva number | + | // Numbri kuvamine |
- | segment_display_write(counter); | + | segment_display_write(counter |
- | // Loenduri suurendamine | + | // Loenduri suurendamine |
counter++; | counter++; | ||
+ | if (counter> | ||
// Paus 1 sekund | // Paus 1 sekund |