Ir ao conteúdo
  • Cadastre-se

Mateus Araquam

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

1
  1. Certeza que sim! Tudo conferido, revisto, relido... Tô dizendo, eu não sei o que fazer mais. Quanto as cartão SD, esse seria o meu proximo passo. Gente de qualquer forma agradeço a todos pela a ajuda! Vou conferir novamente e ver se encontro o erro. Obrigado! E não utilizo outros mc porque o projeto precisa ser usado esse(como falei, sou aluno de iniciação científica e no projeto precisa ser usado esse mc).
  2. Gente, desculpa a demora pra responder... Parece até que é desinteresse meu em resolver o problema, mas é que muita coisa pra fazer. Eu já até olhei o programa procurando por erros mas não consigo encontrar... Já olhei diversas vezes e realmente não sei por que motivo quando vai ler a eeprom externa, só lê 0xFF adicionado 1 minuto depois Caso vocês queiram, posso disponibilizar os arquivos pra ver diretamente no mikroc e protheus. Mais uma vez agradeço pela atenção! adicionado 7 minutos depois Veja, o que quero fazer é escrever algumas variáveis na eeprom externa, Isadora. Eu mando o pic gravar e ele assim o faz sem nenhum erro(inclusive no i2c debugger do protheus dá tudo certinho). Mas quando mando o pic ler essas informações gravadas, o que é lido é 0xff. Já pesquisei na internet pra ver se era as variáveis que estavam erradas(acredito que estejam certas), já pesquisei pra ver se era algum erro de escrita, enfim... Eu estou sem munições pra atirar mais adicionado 13 minutos depois VTRX, eu nunca usei esses microcontroladores que tu falou. Vejam, isso que estou fazendo é um projeto de iniciação científica. O projeto em sí será um pluviômetro que estou montando. O pic ficará recolhendo dados de quanto choveu de meia em meia hora( no programa está menos tempo pois estou testando as funções, e se colocasse meia hora demoraria demais pra ver o que está acontecendo) e salvando na eeprom externa. Quando a eeprom estiver ficando cheia, eu irei com o computador e recolherei os dados com o pc( via rs232, que ainda irei implementar). Basicamente isso...
  3. Cara, estou usando uma 24c32a. Ela tem 4096 espaços adicionado 0 minutos depois @Isadora Ferraz Acho q foi o forum... no programa tá tudo certinho. adicionado 1 minuto depois @vtrx E como eu poderia enviar por partes?
  4. SImplesmente não lê nada. No I2C debugger(no proteus) fala que não lê nada... Aparece 0xff quando ele vai ler as informações. adicionado 3 minutos depois E como eu poderia corrigir isso? Sou novo na programação de Microcontroladores.
  5. Olá pessoal. Estou com problemas para ler dados que são escritos numa eeprom externa. Utilizo o mikroc e para simular, utilizo o proteus. O pic é o 16F877A. Se alguém puder me ajudar, fico muito grato!! A seguir está o programa. unsigned char segundos = 0; unsigned char minutos = 0; unsigned char horas = 0; unsigned long int i = 0; unsigned char count = 0; unsigned char recebe; unsigned long contagem = 0; unsigned long int j; void interrupt() { //if(INTCON.TMR0IF) { contagem++; //para cada interrpção do TMR0 incrementa a variável contagem TMR0 = 0; INTCON.TMR0IF = 0; //limpa o overflow. } } void main(){ { TRISB0_bit = 1; TRISD = 0x00; PORTD = 0b00000000; INTCON.GIE = 1; //habilita interrupção global; INTCON.PEIE = 1; //habilita interrupção dos perifericos; INTCON.TMR0IE = 1; //habilita interrupção do TMR0; TMR0 = 0; // TIMER0 inicia com o valor 0; OPTION_REG = 0b10000001; // Modo Temporizador, prescaler 1:4; I2C1_Init(100000); UART1_Init(73); delay_ms(100); TXSTA.CSRC = 0; TXSTA.TX9 = 0; TXSTA.TXEN = 1; TXSTA.SYNC = 0; TXSTA.BRGH = 0; TXSTA.TRMT = 0; TXSTA.TX9D = 0; RCSTA.SPEN = 1; RCSTA.RX9 = 0; RCSTA.SREN = 0; RCSTA.CREN = 1; RCSTA.ADDEN = 0; RCSTA.FERR = 0; RCSTA.OERR = 0; RCSTA.RX9D = 0; //Configuração da velocidade de transmissão SPBRG = 6; while(1){ if(Button(&PORTB, 0, 0, 1)){ //Quando aperto o botão, um contador é incrementado count++; PORTD.RD7 = 1; delay_ms(200); } else PORTD.RD7 = 0; if(contagem == 40) //quando a contagem = 40, tempo = 40 * 0,125s = 5s { I2C1_Start(); //Essa parte recebe as horas, minutos e segundos do RTC I2C1_Wr(11010000); I2C1_Wr(0x00); I2C1_Repeated_Start(); I2C1_Wr(11010001); segundos = I2C1_Rd(1); minutos = I2C1_Rd(1); horas = I2C1_Rd(0); I2C1_Stop(); delay_ms(20); I2C1_Start(); //Nesta parte, escrevo os dados de segundos na eeprom externa I2C1_Wr(0b10100000); I2C1_Wr(i); I2C1_Wr(segundos); //delay_ms(20); I2C1_Stop(); I2C1_Start(); //Aqui escrevo os minutos na eeprom I2C1_Wr(0b10100000); I2C1_Wr(i+1); I2C1_Wr(minutos); //delay_ms(20); I2C1_Stop(); I2C1_Start(); //Aqui escrevo os segundos I2C1_Wr(0b10100000); I2C1_Wr(i+2); I2C1_Wr(horas); //delay_ms(20); I2C1_Stop(); I2C1_Start(); //Aqui escrevo a quantidade de vezes que eu apertei o botão I2C1_Wr(0b10100000); I2C1_Wr(i+3); I2C1_Wr(count); //delay_ms(20); I2C1_Stop(); i=i++; count = 0; contagem = 0; } if(Button(&PORTC, 0, 0, 1)){ //Quando aperto esse botão, leio as informações da eeprom e envio via serial for(j=0;j<4;j++){ delay_ms(20); I2C1_Init(100000); I2C1_Start(); I2C1_Wr(0b10100000); I2C1_Wr(j); I2C1_Repeated_Start(); I2C1_Wr(0b10100001); recebe = I2C1_Rd(0); delay_ms(20); I2C1_Stop(); UART1_Write(recebe); TXREG = recebe; while(PIR1.TXIF == 0); PIR1.TXIF = 0; delay_ms(20); } } } } }
  6. Pessoal, estou fazendo uma iniciação científica e preciso fazer, para um outro projeto, com que um led acenda logo após eu apertar um botão. Eu realmente não estou entendendo por qual motivo o programa não quer pegar. Vou postar o código pra que vocês possam dar uma olhada. Estou programando em linguagem C, utilizando o MikroC. O PIC é o 16F877A. Desde já agradeço, pessoal!! Na verdade, preciso entender o processo pois quero que o PIC execute um comando no IF após receber um sinal de entrada, que é o acionamento do botão. void main() { TRISA = 0b10000000; PORTA = 0b01000000; TRISD = 0b00000000; PORTD = 0b00000000; while(1){ if(PORTA.RA0 == 1){ delay_ms(50); PORTD.RD7 = 1; } } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...