Moderadores: andre_luis, 51, guest2003, Renie
TRISC=0X87; PORTC=0X00;
TRISC=0X87; PORTC=0X80;
Sergio38br escreveu:bom dia, antes de tudo podia exemplificar a string de comando com todos os dados que você envia, apenas um exemplo.
Sergio
/*************************DEFINIÇÃO DAS VÁRIÁVEIS******************************/
short bt01,bt02,bt03,bt04,...;
unsigned short x, i, rc;
//int i;
//char rec[6];
short rec[5];
unsigned char a;
unsigned char b;
unsigned char c;
/**************************DEFINIÇÃO DE ENTRADAS*******************************/
#define LB1 PORTC.F0
#define LB2 PORTC.F1
#define LB3 PORTC.F2
// Tratamento da Serial
//void trata_serial()
//{
//delay_ms(10);
//Usart_Write('t');
//if ((rec[0]=='D')&&(rec[1]=='0')&&(rec[2]=='1')) bt01=0;
//if ((rec[0]=='D')&&(rec[1]=='0')&&(rec[2]=='2')) bt02=0;
//if ((rec[0]=='D')&&(rec[1]=='0')&&(rec[2]=='3')) bt03=0;
//if ((rec[0]=='D')&&(rec[1]=='0')&&(rec[2]=='4')) bt04=0;
//...
//}
//**************************************************
//Nova trata_serial
// Tratamento da Serial
void trata_serial()
{
b = 0;
c = ((rec[1] - 48) << 4)||(rec[2] - 48));
if ((rec[0]=='D') {
b = 0;
switch (c){
case 01 : bt01 = b;
case 02 : bt02 = b;
......
}
}
/*****************************BLOCO PRINCIPAL**********************************/
void main()
{
/*************************INICIALIZAÇÃO DOS PORT'S*****************************/
TRISB=0X88; PORTB=0X88;
TRISC=0X87; PORTC=0X00;
TRISD=0X88; PORTD=0X77;
ADCON1 = 0X0F;
USART_init(9600);
/******************************************************************************/
bt01=0;bt02=0;bt03=0;bt04=0;...
for (i=0;i<=4;i++) rec[i] = '\0';
i=0;
/****************TRATAMENTO DOS BOTÕES E TRANSMISSÃO DE COMANDO****************/
while(1){
PORTD=0XFE; //BOTAO 01
PORTB=0X88;
delay_ms(1);
if ((LB1)||(bt01==1)){
PORTB=0X88;
PORTD=0XEF;
delay_ms(1);
if (bt01==0){
USART_Write ('L');
USART_Write ('0');
USART_Write ('1');
while(LB1) {}
}
bt01=1;
}...
//Nova rotina da serial
//*************************************************
if (Usart_Data_Ready()) {
a = Usart_Read();
//rec[i] = Usart_Read();
if (a == 0x0D){
trata_serial();
for (i = 0;i < 5; i++) rec[i] = '\0';
i = 0;
}
else{
rec[i] = a;
i++;
}
//rec[i] = rc;
//i++;
//if (rec[i-1]==0x0D)
//{
//trata_serial();
//for (i=0;i<=4;i++) rec[i] = '\0';
//i=0;
//}
}
//************************************************
}
}
/***********************************fim****************************************/
Sergio38br escreveu:isto no trata_serial?
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante