Rev Author Line No. Line
237 kaklik 1 #include ".\infra.h"
221 svejda 2  
3 #define MAX_SLOVO 10 // Maximalni pocet znaku ve slovu
4  
240 kaklik 5 int8 napis[MAX_SLOVO+1];
237 kaklik 6 int8 otacky;
221 svejda 7  
240 kaklik 8 const int8 logo[MAX_SLOVO]={'[','^','_','_',']',96,'^','_','_','a'}; // [blesk] E4A [blesk] , 2004-2008
9 const int8 rok[MAX_SLOVO]={'[','[',92,'[','E',']','A','[',92,'['}
221 svejda 10 #int_RDA
240 kaklik 11 void RDA_isr(void)
221 svejda 12 {
13 int n;
14 output_B(0x55);
240 kaklik 15 for(n=0;n<MAX_SLOVO;n++)
221 svejda 16 {
240 kaklik 17 napis[n]=getc();
221 svejda 18 }
19 }
20  
240 kaklik 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 }
33 output_B(0xFF);
34 delay_us(500);
35 }
36 }
37  
221 svejda 38 void main()
39 {
40  
41 int slovo,pismeno,sloupec,j;
42  
43  
237 kaklik 44 const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A
45 0b00000000,0b01110110,0b01110110,0b01110110,0b10001001, //B
46 0b10000001,0b01111110,0b01111110,0b01111110,0b10111101, //C
47 0b00000000,0b01111110,0b01111110,0b01111110,0b10000001, //D
48 0b00000000,0b01110110,0b01110110,0b01111110,0b01111110, //E
49 0b00000000,0b11110110,0b11110110,0b11111110,0b11111110, //F
50 0b10000001,0b01111110,0b01110110,0b01110110,0b10000101, //G
51 0b00000000,0b11110111,0b11110111,0b11110111,0b00000000, //H
52 0b01111110,0b01111110,0b00000000,0b01111110,0b01111110, //I
53 0b10111110,0b01111110,0b01111110,0b01111110,0b10000000, //J
54 0b00000000,0b11110111,0b11110111,0b11101011,0b00011100, //K
55 0b00000000,0b01111111,0b01111111,0b01111111,0b01111111, //L
56 0b00000000,0b11111110,0b11110000,0b11111110,0b00000000, //M
57 0b00000000,0b11101111,0b11011111,0b10111111,0b00000000, //N
58 0b10000001,0b01111110,0b01111110,0b01111110,0b10000001, //O
59 0b00000000,0b11110110,0b11110110,0b11110110,0b11111001, //P
60 0b10000001,0b01111110,0b01111110,0b01111110,0b00000001, //Q
61 0b00000000,0b11110110,0b11110110,0b11110110,0b00001001, //R
62 0b10111001,0b01110110,0b01110110,0b01110110,0b10001101, //S
63 0b11111110,0b11111110,0b00000000,0b11111110,0b11111110, //T
64 0b10000000,0b01111111,0b01111111,0b01111111,0b10000000, //U
65 0b11000000,0b10111111,0b01111111,0b10111111,0b11000000, //V
66 0b10000000,0b01111111,0b10000000,0b01111111,0b10000000, //W
67 0b00011100,0b11101011,0b11110111,0b11101011,0b00011100, //X
68 0b11111000,0b11110111,0b00000111,0b11110111,0b11111000, //Y
69 0b00011110,0b01101110,0b01110110,0b01111010,0b01111100, //Z
70 0b11111111,0b11111111,0b11111111,0b11111111,0b11111111, //mezera
71 0b00010111,0b00110011,0b01010101,0b11100110,0b11110111, //blesk
72 0b11110000,0b11110111,0b11110111,0b00000001,0b11110111, //4
73 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2
74 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0
75 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka
76 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8
77 };
240 kaklik 78  
237 kaklik 79 setup_adc_ports(AN0);
80 setup_adc(ADC_CLOCK_INTERNAL);
221 svejda 81 setup_psp(PSP_DISABLED);
82 setup_spi(SPI_SS_DISABLED);
83 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
84 setup_wdt(WDT_2304MS);
85 setup_timer_1(T1_DISABLED);
86 setup_timer_2(T2_DISABLED,0,1);
87 setup_comparator(NC_NC_NC_NC);
88 setup_vref(FALSE);
89  
90 enable_interrupts(INT_RDA);
91 enable_interrupts(GLOBAL);
92  
237 kaklik 93 set_adc_channel(0); // Prevodnik pro Hall
94 output_B(0xFF); // Zhasneme
221 svejda 95  
237 kaklik 96 otacky=0;
240 kaklik 97 napis[0]=0;
98  
221 svejda 99 while(TRUE)
100 {
240 kaklik 101 while(napis[0]!=0)
102 {
103 }
104  
221 svejda 105 for(slovo=0;slovo<2;slovo++)
237 kaklik 106 for(j=0;j<=20;j++) // Jedno slovo se zobrazi stokrat
221 svejda 107 {
240 kaklik 108 while(read_adc()<9); // Cekani na magnet
237 kaklik 109 delay_ms(10);
240 kaklik 110  
221 svejda 111 for(pismeno=0;pismeno<MAX_SLOVO;pismeno++)
112 {
113 for(sloupec=0;sloupec<5;sloupec++)
114 {
240 kaklik 115 output_B(pis[(logo[slovo*MAX_SLOVO+pismeno]-0x41)*5+sloupec]);
237 kaklik 116 delay_us(500);
221 svejda 117 }
237 kaklik 118 output_B(0xFF);
119 delay_us(500);
221 svejda 120 }
237 kaklik 121 if (otacky++>120) reset_cpu();
221 svejda 122 }
240 kaklik 123 }
221 svejda 124 }