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  
241 kaklik 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
10  
221 svejda 11 #int_RDA
240 kaklik 12 void RDA_isr(void)
221 svejda 13 {
14 int n;
15 output_B(0x55);
240 kaklik 16 for(n=0;n<MAX_SLOVO;n++)
221 svejda 17 {
240 kaklik 18 napis[n]=getc();
221 svejda 19 }
20 }
21  
240 kaklik 22 void LED_print()
23 {
241 kaklik 24 unsigned int slovo,pismeno,sloupec,j;
240 kaklik 25  
237 kaklik 26 const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A
27 0b00000000,0b01110110,0b01110110,0b01110110,0b10001001, //B
28 0b10000001,0b01111110,0b01111110,0b01111110,0b10111101, //C
29 0b00000000,0b01111110,0b01111110,0b01111110,0b10000001, //D
30 0b00000000,0b01110110,0b01110110,0b01111110,0b01111110, //E
31 0b00000000,0b11110110,0b11110110,0b11111110,0b11111110, //F
32 0b10000001,0b01111110,0b01110110,0b01110110,0b10000101, //G
33 0b00000000,0b11110111,0b11110111,0b11110111,0b00000000, //H
34 0b01111110,0b01111110,0b00000000,0b01111110,0b01111110, //I
35 0b10111110,0b01111110,0b01111110,0b01111110,0b10000000, //J
36 0b00000000,0b11110111,0b11110111,0b11101011,0b00011100, //K
37 0b00000000,0b01111111,0b01111111,0b01111111,0b01111111, //L
38 0b00000000,0b11111110,0b11110000,0b11111110,0b00000000, //M
39 0b00000000,0b11101111,0b11011111,0b10111111,0b00000000, //N
40 0b10000001,0b01111110,0b01111110,0b01111110,0b10000001, //O
41 0b00000000,0b11110110,0b11110110,0b11110110,0b11111001, //P
42 0b10000001,0b01111110,0b01111110,0b01111110,0b00000001, //Q
43 0b00000000,0b11110110,0b11110110,0b11110110,0b00001001, //R
44 0b10111001,0b01110110,0b01110110,0b01110110,0b10001101, //S
45 0b11111110,0b11111110,0b00000000,0b11111110,0b11111110, //T
46 0b10000000,0b01111111,0b01111111,0b01111111,0b10000000, //U
47 0b11000000,0b10111111,0b01111111,0b10111111,0b11000000, //V
48 0b10000000,0b01111111,0b10000000,0b01111111,0b10000000, //W
49 0b00011100,0b11101011,0b11110111,0b11101011,0b00011100, //X
50 0b11111000,0b11110111,0b00000111,0b11110111,0b11111000, //Y
51 0b00011110,0b01101110,0b01110110,0b01111010,0b01111100, //Z
52 0b11111111,0b11111111,0b11111111,0b11111111,0b11111111, //mezera
53 0b00010111,0b00110011,0b01010101,0b11100110,0b11110111, //blesk
54 0b11110000,0b11110111,0b11110111,0b00000001,0b11110111, //4
55 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2
56 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0
57 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka
58 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8
59 };
241 kaklik 60 while(read_adc()<9); // Cekani na magnet
61 delay_ms(10);
240 kaklik 62  
241 kaklik 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  
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 {
241 kaklik 101 if (napis[0]!=0)
240 kaklik 102 {
241 kaklik 103 LED_print();
240 kaklik 104 }
241 kaklik 105 else
221 svejda 106 {
241 kaklik 107 strcpy(napis,logo);
221 svejda 108 }
240 kaklik 109 }
221 svejda 110 }