
#include <avr/io.h>
#include <avr/iom128.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include "font1.h"
#include "myspi.h"
//#include <util/delay.h> 
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC) 


#define preddel 1
#define RX_BUFFER_SIZE0 8
char rx_buffer0[RX_BUFFER_SIZE0];
unsigned char rx_wr_index0,rx_counter0;
//unsigned int rx_wr_index0,rx_rd_index0,rx_counter0;
unsigned scr1[32][8];
char rx_buffer_overflow0;
unsigned char led_status=0xfe;
unsigned temp3; 
char temp;
unsigned i=0; 
char unsigned led_status;

void symgen(unsigned indexscr,unsigned code) 

{
uint8_t temp4;

 for (temp3=0;temp3<7;temp3++)
        {
	temp4=pgm_read_byte (&sym[code][temp3]);
        scr1[indexscr][temp3]=temp4;
        }
}

    
void godisp(void) 
{ 
temp=SPI_MasterTransmit(led_status);
temp=SPI_MasterTransmit(~scr1[0][i]); 

PORTE=(1<<PORTE4);/ сторб 74 595
PORTE=(0<<PORTE4);

led_status=led_status<<1;
if (led_status==0) led_status=0b00000001;
i++;
if (i==8) i=0;

}
 
// Timer 1 overflow interrupt service routine
ISR(TIMER1_OVF_vect)
{  
TCCR1B=0; 
TCNT1H=0xFF;
TCNT1L=0x00;
TCCR1B=preddel;
godisp();
} 
  
int main()
{
led_status=0b00000001;
i=0;
/*

здесь бла бла бла инициализация портов таймеров и тд и тп))
*/
symgen(0,'8');
sei();

while(1);


}
  
  

