Line 1... |
Line 1... |
1 |
#include ".\infra.h" |
1 |
#include ".\infra.h" |
2 |
|
2 |
|
3 |
#define MAX_SLOVO 10 // Maximalni pocet znaku ve slovu |
3 |
#define MAX_SLOVO 10 // Maximalni pocet znaku ve slovu |
4 |
|
4 |
|
5 |
int8 napis[2*MAX_SLOVO] ={'[','[',92,'[','E',']','A','[',92,'[','[','^','_','_',']',96,'^','_','_','a'}; |
5 |
int8 napis[MAX_SLOVO+1]; |
6 |
int8 otacky; |
6 |
int8 otacky; |
7 |
|
7 |
|
- |
|
8 |
const int8 logo[2*MAX_SLOVO] ={'[','[',92,'[','E',']','A','[',92,'[','[','^','_','_',']',96,'^','_','_','a'}; // [blesk] E4A [blesk] , 2004-2008 |
- |
|
9 |
|
8 |
#int_RDA |
10 |
#int_RDA |
9 |
void RDA_isr(void) |
11 |
void RDA_isr(void) |
10 |
{ |
12 |
{ |
11 |
int n; |
13 |
int n; |
12 |
output_B(0x55); |
14 |
output_B(0x55); |
13 |
for(n=0;n<(MAX_SLOVO*2);n++) |
15 |
for(n=0;n<MAX_SLOVO;n++) |
14 |
{ |
16 |
{ |
15 |
napis[n]=getc(); |
17 |
napis[n]=getc(); |
16 |
restart_WDT(); |
- |
|
17 |
} |
18 |
} |
18 |
} |
19 |
} |
19 |
|
20 |
|
20 |
void main() |
21 |
void main() |
21 |
{ |
22 |
{ |
Line 55... |
Line 56... |
55 |
0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2 |
56 |
0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2 |
56 |
0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0 |
57 |
0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0 |
57 |
0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka |
58 |
0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka |
58 |
0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8 |
59 |
0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8 |
59 |
}; |
60 |
}; |
60 |
|
- |
|
- |
|
61 |
|
61 |
setup_adc_ports(AN0); |
62 |
setup_adc_ports(AN0); |
62 |
setup_adc(ADC_CLOCK_INTERNAL); |
63 |
setup_adc(ADC_CLOCK_INTERNAL); |
63 |
setup_psp(PSP_DISABLED); |
64 |
setup_psp(PSP_DISABLED); |
64 |
setup_spi(SPI_SS_DISABLED); |
65 |
setup_spi(SPI_SS_DISABLED); |
65 |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
66 |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
Line 74... |
Line 75... |
74 |
|
75 |
|
75 |
set_adc_channel(0); // Prevodnik pro Hall |
76 |
set_adc_channel(0); // Prevodnik pro Hall |
76 |
output_B(0xFF); // Zhasneme |
77 |
output_B(0xFF); // Zhasneme |
77 |
|
78 |
|
78 |
otacky=0; |
79 |
otacky=0; |
- |
|
80 |
napis[0]=0; |
79 |
|
81 |
|
80 |
while(TRUE) |
82 |
while(TRUE) |
81 |
{ |
83 |
{ |
- |
|
84 |
while(napis[0]!=0) |
- |
|
85 |
{ |
- |
|
86 |
while(read_adc()<9); // Cekani na magnet |
- |
|
87 |
delay_ms(10); |
- |
|
88 |
|
- |
|
89 |
for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) |
- |
|
90 |
{ |
- |
|
91 |
for(sloupec=0;sloupec<5;sloupec++) |
- |
|
92 |
{ |
- |
|
93 |
output_B(pis[(napis[pismeno]-0x41)*5+sloupec]); |
- |
|
94 |
delay_us(500); |
- |
|
95 |
} |
- |
|
96 |
output_B(0xFF); |
- |
|
97 |
delay_us(500); |
- |
|
98 |
} |
- |
|
99 |
} |
- |
|
100 |
|
82 |
for(slovo=0;slovo<2;slovo++) |
101 |
for(slovo=0;slovo<2;slovo++) |
83 |
for(j=0;j<=20;j++) // Jedno slovo se zobrazi stokrat |
102 |
for(j=0;j<=20;j++) // Jedno slovo se zobrazi stokrat |
84 |
{ |
103 |
{ |
85 |
while(read_adc()<9); // Cekani na magnet |
104 |
while(read_adc()<9); // Cekani na magnet |
86 |
delay_ms(10); |
105 |
delay_ms(10); |
87 |
|
106 |
|
88 |
for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) |
107 |
for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) |
89 |
{ |
108 |
{ |
90 |
for(sloupec=0;sloupec<5;sloupec++) |
109 |
for(sloupec=0;sloupec<5;sloupec++) |
91 |
{ |
110 |
{ |
92 |
output_B(pis[(napis[slovo*MAX_SLOVO+pismeno]-0x41)*5+sloupec]); |
111 |
output_B(pis[(logo[slovo*MAX_SLOVO+pismeno]-0x41)*5+sloupec]); |
93 |
delay_us(500); |
112 |
delay_us(500); |
94 |
} |
113 |
} |
95 |
output_B(0xFF); |
114 |
output_B(0xFF); |
96 |
delay_us(500); |
115 |
delay_us(500); |
97 |
} |
116 |
} |
98 |
if (otacky++>120) reset_cpu(); |
117 |
if (otacky++>120) reset_cpu(); |
99 |
} |
118 |
} |
100 |
} |
119 |
} |
101 |
} |
120 |
} |