Ir ao conteúdo
  • Cadastre-se

josec123wy

Membros Juniores
  • Total de itens

    2
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Oi! Galera Tentei compilar como char no ccs tanto a função como o printf. Estou simulando no proteus ,vou fazer os testes em bancada , vou conferir os pinos obrigado a todos adicionado 0 minutos depois
  2. Boa Tarde! Fiz este programa para gravação i2c, com eeprom e pic 18f4550 , simulei no proteus ,porém não consegui gravar , como resultado aparece na leitura os valores 255 ou FF. Favor enviar soluções. include<18F4550.h> #fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT #use delay(clock=20000000) #use RS232 (Baud=4800, xmit = PIN_C6, rcv = PIN_C7) #use i2c(master, sda=PIN_B0, scl=PIN_B1) #include <4bits.h> //********************definiçÃO de bits************* #ORG 0x08, 0x0FFF {} // espaço reservado ao bootloader #build (reset=0x1000, interrupt =0x1018) int leitura; void esc_ext_eeprom(long int end, int dado) { I2C_start(); //Envia uma condição de 'start' ao barramento I2C I2C_Write(0xA0); //Identifica dispositivo para escrita I2C_Write(end); //Identifica endereço na memória I2C_Write(dado); //Envia o dado a ser gravado I2C_Stop(); //Envia uma condição de 'stop' ao barramento I2C delay_ms(5); //Atraso de 5ms } int le_ext_eeprom(long int end) { int leitura; I2C_Start(); //Condição de Start I2C_Write(0xA0); //Envia byte ao I2C (Dispositivo + escrita) I2C_Write(end); //Envia byte ao I2C (endereço) I2C_Start(); //Condição de Restary I2C_Write(0xA1); //Envia byte ao I2C (Dispositivo + leitura) leitura = I2C_Read(0); //Faz a leitura do dado (NO acknowledge) I2C_Stop(); //Condição de Stop delay_ms(5); return leitura; } void main() { config (); inicializa_lcd (); // inicialização do pic pos_lc(0,0); printf (escreve_lcd,"eeprom serial\r\n"); Delay_ms(500); limpa_lcd(); while(true) { if (!input(PIN_A2)) //Se o botão B0 for pressionado { pos_lc(0,0); printf (escreve_lcd,"Gravando eeprom serial\r\n"); Delay_ms(500); limpa_lcd(); esc_ext_eeprom(0,'A'); //Escreve no endereço 0 da memória o caractere 'A' esc_ext_eeprom(1,'C'); //Escreve no endereço 1 da memória o caractere 'C' esc_ext_eeprom(2,'E'); //Escreve no endereço 2 da memória o caractere 'E' esc_ext_eeprom(3,'P'); //Escreve no endereço 3 da memória o caractere 'P' esc_ext_eeprom(4,'I'); //Escreve no endereço 4 da memória o caractere 'I' esc_ext_eeprom(5,'C'); //Escreve no endereço 5 da memória o caractere 'C' delay_ms(500); //Atraso de 500ms } if (!input(PIN_A3)) //Se o botão B1 for pressionado { /*Envia as strings pela serial formatadas com os valores lido dos enderecos 0 até 5 da memória EEPROM externa*/ pos_lc(0,0); printf (escreve_lcd,"End %u\n:",le_ext_eeprom(0)); pos_lc(1,0); printf(escreve_lcd,"End :%u\r\n",le_ext_eeprom(1)); } } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×