// Функция передачи данных на ЭВМ по RS232 (масивы B1, B2 - создаю в ОЗУ, передаю по переменно взависимости от флагов. перед массив идут 5 0хF0 - заголовок.
Код
void RS232(void)
{
unsigned int i, j;
unsigned char data[4];
signed long *p;
p=(signed long*)data;
flag_BUF=0;
if (flag_B2==1)
{
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
// Преобразуем signed long B1 и в ЭВМ
for(i=0; i<600; i++)
{
*p=B1[i];
for (j=0; j<4; j++)
{
UDR0 = data[j];
while ( !( UCSR0A & (1<<UDRE0)) ) { };
}
}
}
else
{
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
// Преобразуем signed long B2 и в ЭВМ
for(i=0; i<600; i++)
{
*p=B2[i];
for (j=0; j<4; j++)
{
UDR0 = data[j];
while ( !( UCSR0A & (1<<UDRE0)) ) { };
}
}
}
}
{
unsigned int i, j;
unsigned char data[4];
signed long *p;
p=(signed long*)data;
flag_BUF=0;
if (flag_B2==1)
{
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
// Преобразуем signed long B1 и в ЭВМ
for(i=0; i<600; i++)
{
*p=B1[i];
for (j=0; j<4; j++)
{
UDR0 = data[j];
while ( !( UCSR0A & (1<<UDRE0)) ) { };
}
}
}
else
{
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
UDR0 = 0xF0;
while ( !( UCSR0A & (1<<UDRE0)) ) { };
// Преобразуем signed long B2 и в ЭВМ
for(i=0; i<600; i++)
{
*p=B2[i];
for (j=0; j<4; j++)
{
UDR0 = data[j];
while ( !( UCSR0A & (1<<UDRE0)) ) { };
}
}
}
}