#include "C:\RS\Prog\infra\infra.h"

#define MAX_SLOVO 10   // Maximalni pocet znaku ve slovu

int8 napis[2*MAX_SLOVO] ={'A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A'};

#int_RDA
void  RDA_isr(void) 
{
   int n;
   output_B(0x55);
   for(n=0;n<(MAX_SLOVO*2);n++)
   {
      napis[n]=getc();
      restart_WDT();
   }
}

void main()
{

   int slovo,pismeno,sloupec,j;


   const int8 pis[26*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001,
                        0b00000001,0b11110110,0b11110110,0b11110110,0b00000001,
                        0b10000001,0b01111110,0b01111110,0b01111110,0b10111101,
                        0b00000000,0b01111110,0b01111110,0b01111110,0b10000001,
                        0b00000000,0b01110110,0b01110110,0b01111110,0b01111110,
                        0b00000000,0b11110110,0b11110110,0b11111110,0b11111110,
                        0b10000001,0b01111110,0b01110110,0b01110110,0b10000101,
                        0b00000000,0b11110111,0b11110111,0b11110111,0b00000000,
                        0b01111110,0b01111110,0b00000000,0b01111110,0b01111110,
                        0b10111110,0b01111110,0b01111110,0b01111110,0b10000000,
                        0b00000000,0b11110111,0b11110111,0b11101011,0b00011100,
                        0b00000000,0b01111111,0b01111111,0b01111111,0b01111111,
                        0b00000000,0b11111110,0b11110000,0b11111110,0b00000000,
                        0b00000000,0b11101111,0b11011111,0b10111111,0b00000000,
                        0b10000001,0b01111110,0b01111110,0b01111110,0b10000001,
                        0b00000000,0b11110110,0b11110110,0b11110110,0b11111001,
                        0b10000001,0b01111110,0b01111110,0b01111110,0b00000001,
                        0b00000000,0b11110110,0b11110110,0b11110110,0b00001001,
                        0b10111001,0b01110110,0b01110110,0b01110110,0b10001101,
                        0b11111110,0b11111110,0b00000000,0b11111110,0b11111110,
                        0b10000000,0b01111111,0b01111111,0b01111111,0b10000000,
                        0b11000000,0b10111111,0b01111111,0b10111111,0b11000000,
                        0b10000000,0b01111111,0b10000000,0b01111111,0b10000000,
                        0b00011100,0b11101011,0b11110111,0b11101011,0b00011100,
                        0b11111000,0b11110111,0b00000111,0b11110111,0b11111000,
                        0b00011110,0b01101110,0b01110110,0b01111010,0b01111100};
                              
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_wdt(WDT_2304MS);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);

   set_adc_channel(0);

   while(TRUE)
   {
      for(slovo=0;slovo<2;slovo++)
      for(j=0;j<=100;j++)   // Jedno slovo se zobrazi stokrat
      {
         while(read_adc()<10);            // Cekani na magnet
         
         for(pismeno=0;pismeno<MAX_SLOVO;pismeno++)
         {
            for(sloupec=0;sloupec<5;sloupec++)
            {
               output_B(pis[(napis[slovo*MAX_SLOVO+pismeno]-0x40)*5+sloupec]);
               delay_ms(1);
            }
            delay_ms(2);
         }
      }
   }   
}