Rev 237 Rev 240
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[MAX_SLOVO]={'[','^','_','_',']',96,'^','_','_','a'}; // [blesk] E4A [blesk] , 2004-2008
-   9 const int8 rok[MAX_SLOVO]={'[','[',92,'[','E',']','A','[',92,'['}
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();
-   18 }
-   19 }
-   20  
-   21 void LED_print()
-   22 {
-   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 }
16 restart_WDT(); 33 output_B(0xFF);
-   34 delay_us(500);
17 } 35 }
18 } 36 }
19   37  
20 void main() 38 void main()
21 { 39 {
Line 55... Line 73...
55 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2 73 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2
56 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0 74 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0
57 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka 75 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka
58 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8 76 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8
59 }; 77 };
60 -  
-   78  
61 setup_adc_ports(AN0); 79 setup_adc_ports(AN0);
62 setup_adc(ADC_CLOCK_INTERNAL); 80 setup_adc(ADC_CLOCK_INTERNAL);
63 setup_psp(PSP_DISABLED); 81 setup_psp(PSP_DISABLED);
64 setup_spi(SPI_SS_DISABLED); 82 setup_spi(SPI_SS_DISABLED);
65 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 83 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
Line 74... Line 92...
74   92  
75 set_adc_channel(0); // Prevodnik pro Hall 93 set_adc_channel(0); // Prevodnik pro Hall
76 output_B(0xFF); // Zhasneme 94 output_B(0xFF); // Zhasneme
77   95  
78 otacky=0; 96 otacky=0;
-   97 napis[0]=0;
79 98  
80 while(TRUE) 99 while(TRUE)
81 { 100 {
-   101 while(napis[0]!=0)
-   102 {
-   103 }
-   104  
82 for(slovo=0;slovo<2;slovo++) 105 for(slovo=0;slovo<2;slovo++)
83 for(j=0;j<=20;j++) // Jedno slovo se zobrazi stokrat 106 for(j=0;j<=20;j++) // Jedno slovo se zobrazi stokrat
84 { 107 {
85 while(read_adc()<9); // Cekani na magnet 108 while(read_adc()<9); // Cekani na magnet
86 delay_ms(10); 109 delay_ms(10);
87 110  
88 for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) 111 for(pismeno=0;pismeno<MAX_SLOVO;pismeno++)
89 { 112 {
90 for(sloupec=0;sloupec<5;sloupec++) 113 for(sloupec=0;sloupec<5;sloupec++)
91 { 114 {
92 output_B(pis[(napis[slovo*MAX_SLOVO+pismeno]-0x41)*5+sloupec]); 115 output_B(pis[(logo[slovo*MAX_SLOVO+pismeno]-0x41)*5+sloupec]);
93 delay_us(500); 116 delay_us(500);
94 } 117 }
95 output_B(0xFF); 118 output_B(0xFF);
96 delay_us(500); 119 delay_us(500);
97 } 120 }
98 if (otacky++>120) reset_cpu(); 121 if (otacky++>120) reset_cpu();
99 } 122 }
100 } 123 }
101 } 124 }