Ir para conteúdo
Fórum Script Brasil

Eric Cerqueira

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Eric Cerqueira

Eric Cerqueira's Achievements

0

Reputação

  1. olá,,, preciso fazer uma antena girar usando um motor de passo e que os dados analogicos de tensao gerados pela antena sejam armazenados num buffer do dspic e enviados posteriormente via porta serial para o computador para ser analisado no matlab. os botoes 1 e 2 servem apenas para ajeitar a posiçao inicial... quando apertar o botao 3 a cada passo do motor o valor analogico de tensao que vem da antena deve ser convertido para digital pelo conversor analogico - digital do dspic e armazenado no buffer. quando o botao 4 for apertado os dados que estavam no buffer do dspic devem ser enviados para o computador via porta serial.. minha duvida esta justamente nesse envio de dados para a memoria e aquisição desses dados posteriormnete...não sei nem por onde começar =/ ... comecei a programar a pouco tempo... segue uma imagem do pic no ISIS e o codigo ate onde fiz ,,, já ajuda muito respondendo qualquer coisa !! http://imageshack.com/a/img673/1618/9lYvDb.png include <P33FJ12GP202.h> _FBS(BSS_NO_FLASH) _FOSCSEL (FNOSC_PRI & IOL1WAY_OFF) _FOSC (POSCMD_XT) _FWDT (FWDTEN_OFF) //_FICD(JTAGEN_OFF & BKBUG_OFF) define BT1 PORTAbits.RA4 //PORTx lê dados do port define BT2 PORTBbits.RB9 define BT3 PORTBbits.RB8 define BT4 PORTBbits.RB7 define OUT1 LATBbits.LATB10 //LATx escreve dados no port define OUT2 LATBbits.LATB11 define OUT3 LATBbits.LATB12 define OUT4 LATBbits.LATB13 void inicializa(void); void delay_ms(unsigned int tempo); void delay_us(unsigned int tempo); void rota (int step); void main(void) { int step=0; int aux; inicializa(); OUT1=0; OUT2=0; OUT3=0; OUT4=0; while(1) { if (BT1==0)//dá um passo no sentido horario { step++; if (step>3) step =0; rota (step); } if (BT2==0)//dá um passo no sentido anti-horario { step--; if (step<0) step =3; rota (step); } /*aux depende do angulo de giro do motor, q no caso é 5.625, logo 1 volta completa necessita 64 passos */ if (BT3==0)//dá uma volta no sentido horario { for(aux = 0 ;aux <64 ; aux++ ) { step++; if(step>3) step=0; rota(step); minha duvida começa aki !!! . como enviar os dados da antena ate a memoria do pic??para qual porta devo enviar o sinal analógico ??como fazer a conversao analog - dgital ??como armazenar os dados na memoria ?? } } if botao 4 -- como pegar os dados da memoria e enviar ao pc via serial ?? }//while }//main void inicializa(void) { ADPCFG=0x00FF; TRISB=0b0000001110000000; TRISA=0b0000000000010000; } void delay_ms(unsigned int tempo) { unsigned int tempo1; if (!tempo) return; for (tempo1=1;tempo1<=tempo;tempo1++) delay_us(500); } void delay_us(unsigned int tempo) { if (!tempo) return; do { tempo--; }while(tempo); } void rota (int step) // rotina para o motor { switch (step) { case 0: OUT1=0; OUT2=0; OUT3=0; OUT4=1; break; case 1: OUT1=0; OUT2=0; OUT3=1; OUT4=0; break; case 2: OUT1=0; OUT2=1; OUT3=0; OUT4=0; break; case 3: OUT1=1; OUT2=0; OUT3=0; OUT4=0; break; }//switch delay_ms(100); }//rota void delay_us(unsigned int tempo) { if (!tempo) return; do { tempo--; }while(tempo); } void rota (int step) // rotina para o motor { switch (step) { case 0: OUT1=0; OUT2=0; OUT3=0; OUT4=1; break; case 1: OUT1=0; OUT2=0; OUT3=1; OUT4=0; break; case 2: OUT1=0; OUT2=1; OUT3=0; OUT4=0; break; case 3: OUT1=1; OUT2=0; OUT3=0; OUT4=0; break; }//switch delay_ms(100); }//rota
  2. o usuario da os dados que preenchem a matriz e insere também as linhas que ele quer que sejam trocadas,,, tentei fazer mas ta dando erro no for pra trocar uma linha pela outra .... deem uma luz aiii !! #include <stdio.h> #include <stdlib.h> int main() { int i,j,x,y,aux; int M[3][3]; for(i=0; i<3; i++) for(j=0; j<3; j++) { printf("\nDigite o termo A%d%d: ",i+1,j+1); scanf("%d",&M[i][j]); } for(i=0; i<3; i++) { printf("\n|"); for(j=0; j<3; j++) { printf("%4d",M[i][j]); } printf("|"); } printf("\n"); printf("/n Digite as linhas a serem trocadas: "); scanf("%d""%d",x,y); for(j=0; j<3; j++) { aux = M[x][j]; M[x][j] = M[y][j]; M[y][j] = aux; } for(i=0; i<3; i++) { printf("\n|"); for(j=0; j<3; j++) { printf("%4d",M[i][j]); } printf("|"); } printf("\n"); system("PAUSE"); return(0); }
×
×
  • Criar Novo...