Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
#include
#include "mega128.h"
#include "math.h"volatile int i;
volatile char nb=0;
volatile unsigned char Buf_Out[40];
volatile unsigned char flag_out=1;
//************** UART ***************************#pragma vector=USART0_UDRE_vect
static __interrupt void CompUSART_TX();//************************************************
__interrupt void CompUSART_TX()
{nb++;
UDR0 = Buf_Out[nb];if(nb==1)
{
nb=0;
UDRIE0 = 0;
flag_out = 1;
}}
//************************************************void main(void)
{__disable_interrupt();
DDRF_.bit.bit_0 = 0;
PORTF_.bit.bit_0 = 0;
DDRA_.bit.bit_4 = 1;
DDRA_.bit.bit_5 = 1;
DDRA_.bit.bit_6 = 1;
DDRA_.bit.bit_7 = 1;
DDRA_.bit.bit_3 = 1;PORTA_.bit.bit_4 = 1;
PORTA_.bit.bit_5 = 0;
PORTA_.bit.bit_6 = 0;
PORTA_.bit.bit_7 = 0;
PORTA_.bit.bit_3 = 1;
//*************** UART **************
UBRR0H = 0;
UBRR0L = 38; // 9600(+)
U2X0 = 0; //double speed mode off
UMSEL0 = 0;
UCSZ02 = 0;
UCSZ11 = 1;
UCSZ10 = 1; //8
UPM10 = 0;
MPCM0 = 0;
RXCIE0 = 1;
UDRIE0 = 1;
RXEN0 = 1;
TXEN0 = 1;
TXCIE0 = 0;
__enable_interrupt();
//**************************************ADPS = 6; // CLK/64
ADEN = 1;
MUX = 0;//***************************************
while(1)
{
if(flag_out)
{
if(!ADSC)
{
if((i++)>5000)
{
i=0;
Buf_Out[0]= ADCL;
Buf_Out[1]= ADCH;
ADSC = 1;
nb=0;
flag_out = 0;
UDRIE0 = 1;
UDR0 = Buf_Out[nb];
}
}
}
}
}