Me ajudem, por favor...

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Me ajudem, por favor...

Mensagempor Vonnilmam » 10 Nov 2016 17:17

Caros e ilustres, amigos.

Sou eu novamente,

Vejam só, terminei o programa que escreve através de vetores em "ROM", textos num GLCD.

Bom, consegui terminar, funcionar belezinha, só que me deparei com um problema MALUCO e preciso de ajuda, de vocês que são muito mais experientes que o veio vonnilmam que não passa de um NOVATO.

O que ocorre é que na trecho de rotina abaixo, tem uma função "bytetostr (index_table, txt);", ela não serve para nada no programa, mas se eu tirar essa função, o contador "DATAIN", não incrementa...DOIDERA, tô boiando, sem entender nadinca...Agora se eu eliminar essa função e eliminar o #include "Buffer_texto.h", do programa, o contador funciona normalmente...

SOCORRO....qui que eu tô fazendo de errado?

Obrigado

cpp code
// ESSA AQUI É A TALELA GRAVADA NA "ROM" DO MCU

// ---------------------------------------------
// RELAÇÃO DE TODOS OS TEXTOS / TIMBRES GM 170
// "INDEX_TABLE" é o indexador, "TXT" é um ARRAY 17
// O TAMANHO DO TEXTO É FIXO EM 17 CARACTERES + END (18)
// ---------------------------------------------
const code char vetor[3][18] = {
"00 Grand Piano ",
"01 Bright Piano ",
"02 El Grand Piano",

//***********************************************

// ESSA AQUI É O MAIN LOOP DE TESTE.
// TODAS AS VARIÁVEIS ESTÃO DECLARADAS COMO USINGNED CHAR
// EXETO A "TXT" QUE UM ARRAY FIXO DE 18 CELULAS.

datain = 0;
while(1) {

if (datain == 76)
{
datain = 255;
}
else
{
datain ++;
index_table = datain;
#include "Buffer_texto.h" // Tabela de textos gerais.
Glcd_Write_Text(txt, 25, 4, 1); // Envia Texto para GLCD
bytetostr (index_table, txt);
delay_ms(1000);
}
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Me ajudem, por favor...

Mensagempor Vonnilmam » 10 Nov 2016 17:20

Esqueci de mencionar que o arquivo #include "Buffer_texto.h", é o listado acima, ok
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Me ajudem, por favor...

Mensagempor Vonnilmam » 10 Nov 2016 17:46

Peço perdão...


Segue o código correto, favor desconsiderar o anterior, eu esqueci de adcionar uma parte...

Considerem esse aqui:

cpp code
// ESSA AQUI É A TALELA GRAVADA NA "ROM" DO MCU

// ---------------------------------------------
// RELAÇÃO DE TODOS OS TEXTOS / TIMBRES GM 170
// "INDEX_TABLE" é o indexador, "TXT" é um ARRAY 17
// O TAMANHO DO TEXTO É FIXO EM 17 CARACTERES + END (18)
// ---------------------------------------------
const code char vetor[3][18] = {
"00 Grand Piano ",
"01 Bright Piano ",
"02 El Grand Piano",

//***********************************************

// ESSA AQUI É O MAIN LOOP DE TESTE.
// TODAS AS VARIÁVEIS ESTÃO DECLARADAS COMO USINGNED CHAR
// EXETO A "TXT" QUE UM ARRAY FIXO DE 18 CELULAS.

datain = 0;
while(1) {

if (datain == 76)
{
datain = 255;
}
else
{
datain ++;
index_table = datain;
#include "Buffer_texto.h" // Tabela de textos gerais.
Glcd_Write_Text(txt, 25, 4, 1); // Envia Texto para GLCD
bytetostr (index_table, txt);
delay_ms(1000);
}


// ---------------------------------------------
// MATRIX MULTIDIRECIONAL VETORIZADA BUFFER 18
// ---------------------------------------------
txt[0] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[1] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[2] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[3] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[4] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[5] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[6] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[7] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[8] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[9] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[10] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[11] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[12] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[13] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[14] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[15] = vetor[index_table][caracter];
vetor [index_table][caracter++];
txt[16] = vetor[index_table][caracter];
txt[17] = 0;
caracter = 0; // Guia do indexador de matriz
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Me ajudem, por favor...

Mensagempor andre_luis » 10 Nov 2016 20:38

Vonnilmam escreveu:O que ocorre é que na trecho de rotina abaixo, tem uma função "bytetostr (index_table, txt);", ela não serve para nada no programa, mas se eu tirar essa função, o contador "DATAIN", não incrementa...


Não é que essa função nao sirva pra nada, mas na verdade o que ela parece estar fazendo é incluir o caractere NULL no array de caracteres.
Pensando bem, acho que me enganei...tem de olhar com mais calma.
"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: Me ajudem, por favor...

Mensagempor Vonnilmam » 11 Nov 2016 14:40

Andre do céu e amigos,


Agradeço as dicas,

Obrigado,
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Me ajudem, por favor...

Mensagempor ze » 14 Nov 2016 11:17

Quase me deu vontade mencionar que vc nem deu bola ou retorno pras dicas lá no outro post mas acho que nem vou falar nada. Fofoquemos neste...

-estranho espaço antes do ++
-estranho colocar o #include dentro do loop
-ao retirar a função, seu compilador deve estar decidindo que a variável datain é inútil pois não é usada em lugar nenhum ou é usada e não causa nada no hw ou sw. O mesmo para index_table. Tente desligar as otimizações
...
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Re: Me ajudem, por favor...

Mensagempor tcpipchip » 15 Nov 2016 07:35

Voce testou em outro compilador ?

O mikroc esta cheio de bugs, principalmente de paginaçao (pelo menos nas versoes mais antigas)
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: Me ajudem, por favor...

Mensagempor pamv » 15 Nov 2016 10:56

"..ela não serve para nada no programa, mas se eu tirar essa função, o contador "DATAIN", não incrementa..."

Você precisa tira-la?
Outra dúvida, você pegou esse trecho de programa de algum exemplo da mikroe?
pamv
Word
 
Mensagens: 842
Registrado em: 20 Jun 2016 21:47

Re: Me ajudem, por favor...

Mensagempor Vonnilmam » 15 Nov 2016 22:10

Boa noite a todos,


Caro amigo "ze", pelo amor de Deus, me perdoe, não foi minha intenção... Lá no outro post, o problema já havia sido resolvido, com a dica do andré e do info...

Eu sou muito grato a todos vocês, nossa, muito mesmo. Como vocês sabem estou aprendendo "C"...vim do assembler da velha guarda e tudo é novidade para mim.

Eu acabei descobrindo o problema, adivinhem aonde estava?

Lá na configuração do MCU, tem uma opção que habilita ou desabilita o A/D no portB (eu tô usando o PIC18F4520), então, só foi desabilitar essa opção e tudo voltou ao normal...

"ze", quanto aos espaços, já testei com e sem espaços e funciona do mesmo jeito...mas vou pegar sua dica e vou começar de agora em diante a não deixar espaços.

Agora, pessoal que aprendi a mexer com VETORES e MATRIZES, vou mexer com um GLCD colorido com o processador SSD1963. Alguém ai já mexeu com essa coisinha.

Gozado é que no MIKROC, tem uma LIB para esse controlador, porém, não há exemplo com rotina, tal como em outros exemplos.

Eu tentei inicializar esse GLCD colorido e não consegui, dá erros...alguém tem uma dica?

Obrigado,
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Me ajudem, por favor...

Mensagempor tcpipchip » 16 Nov 2016 13:14

adcon1 ? !
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: Me ajudem, por favor...

Mensagempor Vonnilmam » 18 Nov 2016 20:39

Tcpip, eu estou utilizando o mikroc, ok

Lá na configuração do microcontrolador, tem a opção de configurar o PORTB como digital ou entrada analógica. No modo standar, ele vem em modo entrada analógica.

Depois que eu mudei para DIGITAL, funcionou direitinho...

Obrigado,
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

x