Tags:
imagine o byte na porta (0000 0000) onde todos os pinos estão em baixa
Então voce escolhe como clock o pino 1 (0000 0010) = valor byte 2
e escolhe como pino de dados o pino 0 (0000 0001) =valor byte 1
*** (quando : (0000 0011) byte 3 refere-se ao clock + bit de dados high)
veja o laço FOR onde voce vai escrever 16 bits (1 word de informação.Lógico que o clock tem que oscilar 16 vezes)
dado[16]={0101 0110 0111 0111};//este codigo é relativo ao dados dos 16 bits (código é genérico,didático)
for ( int i=0;i>16;i++)
{
bit=dado[i];//o bit vai receber o bit corrente informado pelo " i "
SE (bit==0)
{escreve na mesma porta o "bit" do dado serialmente (0000 0010);//isto é, apenas o clock;}
SE (bit==1)
{escreve na mesma porta o "bit" do dado serialmente (0000 0011);// *** isto é,o clock e também o dado high}
//clock vai abaixo independente do estado do bit (low)
escreve na porta (0000 0000);
}
para fazer a leitura de uma interface usando qualquer pino (genericamente) concatene os bit na variavel de acordo com estado do bit.
(Este texto foi escrito agora e está passivo de verificações ou analises.Mas creio que possa ser estudado na implementação de biblioteca)
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por