Queria 'portar' um código ASM para o CCS,mas em um trecho não entendo o que está acontecendo.
Veja o fragmento de código:
- Código: Selecionar todos
unsigned int16 Desloca,Letra;
unsigned int8 Buf;
.........
Buf = caracter[Letra];
output_b(~Buf) ;//
//output_b(~0b00111100);
............
Tenho uma tabela com várias posições onde devo pegar uma posição em sequencia,cada byte,e dar saída no PortB,isso não tem segredo,mas usando a lógica acima os Bits não correspondem,falta sempre algum.
Para testar se era o CCS,ja que em ASM funciona OK,fiz um teste usando output_b(~0b00111100); com a posição 33 da tabela.
A posição 33 da tabela contem o valor 0b00111100.
Usando direto a saída é como esperada,mas se usar Buf = caracter[Letra]; ou output_b(caractere[Letra]);e a variável Letra for 33,a saída não é como esperada,falta um bit.
Qual a magia?