Rev 240 Rev 241
Line 3... Line 3...
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[MAX_SLOVO+1]; 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 8 const int8 logo[MAX_SLOVO+1]={'[','^','_','_',']',96,'^','_','_','a',0}; // [blesk] E4A [blesk]
-   9 const int8 rok[MAX_SLOVO+1]={'[','[',92,'[','E',']','A','[',92,'[',0}; // 2004-2008
9   10  
10 #int_RDA 11 #int_RDA
11 void RDA_isr(void) 12 void RDA_isr(void)
12 { 13 {
13 int n; 14 int n;
Line 16... Line 17...
16 { 17 {
17 napis[n]=getc(); 18 napis[n]=getc();
18 } 19 }
19 } 20 }
20   21  
21 void main() 22 void LED_print()
22 { 23 {
23   -  
24 int slovo,pismeno,sloupec,j; 24 unsigned int slovo,pismeno,sloupec,j;
25   -  
26   25  
27 const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A 26 const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A
28 0b00000000,0b01110110,0b01110110,0b01110110,0b10001001, //B 27 0b00000000,0b01110110,0b01110110,0b01110110,0b10001001, //B
29 0b10000001,0b01111110,0b01111110,0b01111110,0b10111101, //C 28 0b10000001,0b01111110,0b01111110,0b01111110,0b10111101, //C
30 0b00000000,0b01111110,0b01111110,0b01111110,0b10000001, //D 29 0b00000000,0b01111110,0b01111110,0b01111110,0b10000001, //D
Line 56... Line 55...
56 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2 55 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2
57 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0 56 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0
58 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka 57 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka
59 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8 58 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8
60 }; 59 };
-   60 while(read_adc()<9); // Cekani na magnet
-   61 delay_ms(10);
-   62  
-   63 for(pismeno=0;pismeno<MAX_SLOVO;pismeno++)
-   64 {
-   65 for(sloupec=0;sloupec<5;sloupec++)
-   66 {
-   67 output_B(pis[(napis[pismeno]-0x41)*5+sloupec]);
-   68 delay_us(500);
-   69 }
-   70 output_B(0xFF);
-   71 delay_us(500);
-   72 }
-   73 }
-   74  
-   75 void main()
-   76 {
-   77  
61   78  
62 setup_adc_ports(AN0); 79 setup_adc_ports(AN0);
63 setup_adc(ADC_CLOCK_INTERNAL); 80 setup_adc(ADC_CLOCK_INTERNAL);
64 setup_psp(PSP_DISABLED); 81 setup_psp(PSP_DISABLED);
65 setup_spi(SPI_SS_DISABLED); 82 setup_spi(SPI_SS_DISABLED);
Line 79... Line 96...
79 otacky=0; 96 otacky=0;
80 napis[0]=0; 97 napis[0]=0;
81   98  
82 while(TRUE) 99 while(TRUE)
83 { 100 {
84 while(napis[0]!=0) 101 if (napis[0]!=0)
85 { 102 {
86 while(read_adc()<9); // Cekani na magnet -  
87 delay_ms(10); 103 LED_print()
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 } 104 }
100   -  
101 for(slovo=0;slovo<2;slovo++) 105 else
102 for(j=0;j<=20;j++) // Jedno slovo se zobrazi stokrat -  
103 { 106 {
104 while(read_adc()<9); // Cekani na magnet -  
105 delay_ms(10); -  
106   -  
107 for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) -  
108 { -  
109 for(sloupec=0;sloupec<5;sloupec++) -  
110 { -  
111 output_B(pis[(logo[slovo*MAX_SLOVO+pismeno]-0x41)*5+sloupec]); -  
112 delay_us(500); -  
113 } -  
114 output_B(0xFF); -  
115 delay_us(500); 107 strcpy(napis,logo);
116 } -  
117 if (otacky++>120) reset_cpu(); -  
118 } 108 }
119 } 109 }
120 } 110 }