Ir ao conteúdo
  • Cadastre-se

ViniciusKruz

Membro Pleno
  • Posts

    724
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de ViniciusKruz em Traduzindo a biblioteca 74hc595.C da CCS C compiler ! foi marcado como solução   
    @Nikola Tesla Amém!! pra você também!!
     
    Eu tenho aqui é um projeto, só que não vai rodar em um f84 por falta de memória. Esse projeto está meio bagunçado porque abandonei ele antes de finalizar pois passei a usar os CIs max7219(e já descontinuei também; descobri os tlc5940 )hahahaha que doidera!!! é que a tecnologia me fascina. Esse TLC sim está me arrebentando.
     
    Não tá organizado como os projetos das Isadoras Ferrazes por aí não mas funciona, vou te passo pra você brincar. Mas to avisando, a organização está um lixo, afinal eu não levei muito à diante, enquanto você organiza, vai aprendendo.
     
    Testei em um 16f877 e 18f4550.
     
    Abraço.
     
    display.rar
  2. O post de ViniciusKruz em Memória 24lc512 às vezes grava e às vezes não foi marcado como solução   
    Resolvido, na verdade não era falha na gravação, modifiquei uma variável de leitura, ela era int8 passei ela para int16 e resolveu. Na verdade nem entendi o porque deu certo pois a variável de 8 bits vai de 0 a 255 e quando a contagem dela passava de 12, a leitura falhava. Coisas de CCS hahaha ou a pecinha entre a cadeira e o pc. De qualquer forma valeu!!
  3. O post de ViniciusKruz em 18f4550(ccs c) e tda7319 protocolo i2c foi marcado como solução   
    Consegui fazer ele dar o primeiro sinal de vida rerere
     
    Alterei a biblioteca citada acima, modifiquei algumas coisas, adicionei uns delays, enfim, ficou assim:
    void I2C_start(void)// coloca o barramento na condição de start{ //apaga_scl; // coloca a linha de clock em nível 0 seta_sda; // coloca a linha de dados em alta impedância (1) seta_scl; // coloca a linha de clock em alta impedância (1) delay_us(2); apaga_sda; // coloca a linha de dados em nível 0 delay_us(1); apaga_scl; // coloca a linha de clock em nível 0}void I2C_stop(void)// coloca o barramento na condição de stop{ //apaga_scl; // coloca a linha de clock em nível 0 apaga_sda; // coloca a linha de dados em nível 0 seta_scl; // coloca a linha de clock em alta impedância (1) delay_us(1); seta_sda; // coloca a linha de dados em alta impedância (1)}void i2c_ack()// coloca sinal de reconhecimento (ack) no barramento{ apaga_sda; // coloca a linha de dados em nível 0 delay_us(1); seta_scl; // coloca a linha de clock em alta impedância (1) delay_us(1); apaga_scl; // coloca a linha de clock em nível 0 seta_sda; // coloca a linha de dados em alta impedância (1)}void I2C_escreve_byte(unsigned char dado){// envia um byte pelo barramento I2C int conta=8; apaga_scl; // coloca SCL em 0 while (conta) { // envia primeiro o MSB if (shift_left(&dado,1,0)) seta_sda; else apaga_sda; // dá um pulso em scl seta_scl; conta--; delay_us(1); apaga_scl; } seta_sda;}void escreve_eeprom2(){ //if (dispositivo>7) dispositivo = 7; i2c_start(); i2c_escreve_byte(0x86); //i2c_escreve_byte(0xa0 | (dispositivo << 1)); // endereça o dispositivo i2c_ack(); i2c_escreve_byte(0x00);//vol1 i2c_ack(); i2c_escreve_byte(0x01);//vol2 i2c_ack(); i2c_escreve_byte(0x80);//agudos i2c_ack(); i2c_escreve_byte(0xA0);//medios i2c_ack(); i2c_escreve_byte(0xC0);//graves i2c_ack(); i2c_escreve_byte(0xFF);//mute off i2c_ack(); I2C_stop();} Agora é só afinar a coisa e vai ficar show de bola. Valeu amigo vtrx, obrigado mesmo!! Abração.

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...