CCS denovo...

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

CCS denovo...

Mensagempor vtrx » 08 Abr 2018 13:07

Ve se alguém me ajuda.

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?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: CCS denovo...

Mensagempor KrafT » 08 Abr 2018 20:18

Tenta fazer:
Código: Selecionar todos
   Buf = ~(caracter[Letra]);
      output_b(Buf) ;


O CCS é meio temperamental;
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: CCS denovo...

Mensagempor andre_luis » 08 Abr 2018 21:35

A função output_b() do CCS espera como argumento uma variável do tipo int e nao unsigned int.
Se a dica acima não funcionar, experimenta declarar Buf como deste tipo.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: CCS denovo...

Mensagempor vtrx » 08 Abr 2018 21:41

Não adiantou.
O problema não é o complemento(~),é realmente a variável.

Código: Selecionar todos
      Buf = ~(caracter[33]);
      output_b(Buf) ;

Funciona corretamente.

Carregando L com 33 não

Código: Selecionar todos
L = 33

Código: Selecionar todos
      Buf = ~(caracter[L]);
      output_b(Buf) ;


A tabela está iniciada do seguinte modo:
Código: Selecionar todos
unsigned int8 const caracter[]=


Os Buffer estão assim:
Código: Selecionar todos
   unsigned int8 Desloca,Letra;
   unsigned int8 Buf;


Não estava querendo usar o C18.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: CCS denovo...

Mensagempor KrafT » 09 Abr 2018 07:21

Testei teu código "as is" no CCS 5.036 num PIC18F4620, e não deu nenhum problema (com uma tabela bem pequena, claro):

Código: Selecionar todos
unsigned int8 const caracter[] = {0x55, 0xAA, 0xF0, 0x0F};

void main() {
    unsigned int16 Desloca, Letra;
    unsigned int8 Buf;
    set_tris_b(0);
    for (Letra = 0; Letra<sizeof (caracter); Letra++) {
        Buf = ~(caracter[Letra]);
        output_b(Buf);
    }
}
 
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: CCS denovo...

Mensagempor vtrx » 09 Abr 2018 08:13

Mais a tarde vou postar o teste no proteus e código com a tabela para ver.
É uma varredura simples de Matriz de Leds e usa o Timer0,mas usei o CCS 5.070.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: CCS denovo...

Mensagempor andre_luis » 09 Abr 2018 10:56

O CCS não 'gosta' de arrays com mais de 255 bytes, mas o estranho é que isso deveria gerar erro ou warning, e ao menos acontecia comigo com um PIC da familia 16F na versão 3, mas já estamos na 5. Como voce está fazendo um mapeamento de caracteres, suponho que a tabela seja grande e seja um problema parecido com o que reportei nessa postagem.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: CCS denovo...

Mensagempor vtrx » 09 Abr 2018 11:48

Pega o teste em:
https://www.4shared.com/rar/haLLTCAoca/Leds_CCS_16F.html

Deixei os caracteres no arquivo 'tabela' em binário,assim fica mais fácil examinar os bits.
O arquivo hex ASM.hex,é o compilado em ASM,assim pode trocar no Proteus e verificar o resultado correto.
Na verdade o conteudo não ficará em uma tabela,mas sim numa Eeprom,mas para testar a varredura usei uma tabela.
André,o tamanho da tabela não é problema,é só um teste.
È um passa tempo meu antigo que quero passar para CCS usando USB com o 18F2550.

PS:esqueci de dizer a senha!
asm51
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: CCS denovo...

Mensagempor vtrx » 10 Abr 2018 10:46

Ninguem vai me ajudar nesta curiosidade?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: CCS denovo...

Mensagempor eletroinf » 10 Abr 2018 11:37

Pois é, eu fiz a manobra de baixar o arquivo e tem senha! aí fica difícil
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: CCS denovo...

Mensagempor eletroinf » 10 Abr 2018 11:49

O que exatamente acontece? Que bit falta?
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: CCS denovo...

Mensagempor vtrx » 10 Abr 2018 12:20

SENHA=asm51
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: CCS denovo...

Mensagempor KrafT » 10 Abr 2018 12:49

Desisti por não saber em qual dos 200 botões de "Download" clicar no 4Shared e tampouco querer logar/criar conta. Um link do Dropbox, Onedrive, GoogleDrive seria menos traumático.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: CCS denovo...

Mensagempor andre_luis » 10 Abr 2018 13:21

Ninguem vai me ajudar nesta curiosidade?


Porque nao simplesmente anexou aqui no asm51 ?
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: CCS denovo...

Mensagempor vtrx » 10 Abr 2018 13:55

Porque não sei como...
Se for clicando no botão 'Download',aqui da erro.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x