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[MAX_SLOVO]={'[','^','_','_',']',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]={'[','[',92,'[','E',']','A','[',92,'['} 9 const int8 rok[MAX_SLOVO+1]={'[','[',92,'[','E',']','A','[',92,'[',0}; // 2004-2008
-   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;
14 output_B(0x55); 15 output_B(0x55);
Line 18... Line 19...
18 } 19 }
19 } 20 }
20   21  
21 void LED_print() 22 void LED_print()
22 { 23 {
23 while(read_adc()<9); // Cekani na magnet -  
24 delay_ms(10); -  
25   -  
26 for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) -  
27 { -  
28 for(sloupec=0;sloupec<5;sloupec++) -  
29 { -  
30 output_B(pis[(napis[pismeno]-0x41)*5+sloupec]); -  
31 delay_us(500); -  
32 } -  
33 output_B(0xFF); -  
34 delay_us(500); -  
35 } -  
36 } -  
37   -  
38 void main() -  
39 { -  
40   -  
41 int slovo,pismeno,sloupec,j; 24 unsigned int slovo,pismeno,sloupec,j;
42   -  
43   25  
44 const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A 26 const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A
45 0b00000000,0b01110110,0b01110110,0b01110110,0b10001001, //B 27 0b00000000,0b01110110,0b01110110,0b01110110,0b10001001, //B
46 0b10000001,0b01111110,0b01111110,0b01111110,0b10111101, //C 28 0b10000001,0b01111110,0b01111110,0b01111110,0b10111101, //C
47 0b00000000,0b01111110,0b01111110,0b01111110,0b10000001, //D 29 0b00000000,0b01111110,0b01111110,0b01111110,0b10000001, //D
Line 73... Line 55...
73 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2 55 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2
74 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0 56 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0
75 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka 57 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka
76 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8 58 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8
77 }; 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  
78   78  
79 setup_adc_ports(AN0); 79 setup_adc_ports(AN0);
80 setup_adc(ADC_CLOCK_INTERNAL); 80 setup_adc(ADC_CLOCK_INTERNAL);
81 setup_psp(PSP_DISABLED); 81 setup_psp(PSP_DISABLED);
82 setup_spi(SPI_SS_DISABLED); 82 setup_spi(SPI_SS_DISABLED);
Line 96... Line 96...
96 otacky=0; 96 otacky=0;
97 napis[0]=0; 97 napis[0]=0;
98   98  
99 while(TRUE) 99 while(TRUE)
100 { 100 {
101 while(napis[0]!=0) 101 if (napis[0]!=0)
102 { 102 {
-   103 LED_print();
103 } 104 }
104   -  
105 for(slovo=0;slovo<2;slovo++) 105 else
106 for(j=0;j<=20;j++) // Jedno slovo se zobrazi stokrat -  
107 { 106 {
108 while(read_adc()<9); // Cekani na magnet -  
109 delay_ms(10); -  
110   -  
111 for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) -  
112 { -  
113 for(sloupec=0;sloupec<5;sloupec++) -  
114 { -  
115 output_B(pis[(logo[slovo*MAX_SLOVO+pismeno]-0x41)*5+sloupec]); -  
116 delay_us(500); -  
117 } -  
118 output_B(0xFF); -  
119 delay_us(500); 107 strcpy(napis,logo);
120 } -  
121 if (otacky++>120) reset_cpu(); -  
122 } 108 }
123 } 109 }
124 } 110 }