Ir ao conteúdo

Posts recomendados

Postado

Existe alguma forma de truncar um valor no CCS C Compiler ? 
Meu objetivo é truncar cada caractere de um valor analógico.

- Por exemplo: Valor = 247 ; 

Depois armazenar esse valor truncado em um vetor nas suas devidas posições. 

- int vetor [ ] = {2, 4, 7} ;

 

Se alguém souber a solução, por favor poste aqui a sua solução com o esquemático do PIC.

Ou se alguém alguma outra forma de fazer, poste aqui a sua solução !

Sem título.png

  • Obrigado 1
Postado

@1hsouza1 ,

 

Olha, até o Basic tem um função que faz isso, deve ter algo semelhante no CCs C, mas se não tiver , também é fácil fazer uma função que faça isso... transforme em string, e depois pegue o primeiro caractere da string, converta em decimal, guarde no vetor, remova da string, e assim sucessivamente até a string ser nula....

 

Paulo

  • Curtir 1
  • Membro VIP
Postado

🙃Quase fácil amigo
 

unsigned char centena,dezena,unidade;
void desmembra(unsigned char vl)
{
unidade=vl%10;
vl/=10;
dezena=vl%10;
vl/=10;
centena=vl%10;
}
...

desmembra(247);

...

Entendeu? Então vamos tentar com seu vetor...

unsigned char vetor[];
void desmembra(unsigned char vl) //int, double, word ...
{
unsigned char i=0;
while(vl)
	{
	vetor[i++]=vl%10;
	vl/=10;
	}
}

 

A propósito, o algoritmo acima é semi totalmente original ©🤪 

O preço: teste, entenda e explique

  • Curtir 1
  • Haha 1
Postado

Se sua intenção é pegar um valor analógico e guardá-lo numa matriz para depois mostra num LCD,sua ideia é um desperdício.

  • Curtir 2
  • Membro VIP
Postado

 

Mostre-nos outra opção que não o seja por gentileza... ou talvez você não entendeu e/ou não é esta a ideia do garoto e, claro, tampouco a saída da minha função que está extremamente otimizada para exatamente isso: mostrar num display lcd ou 7 segmentos em c puro... sem libs. Considerando que o garoto já sabe varrer os números num display 7seg, ...

const char tabela[]={... //desenhos dos números
void interrupt_uns_200Hz_pra_4_displays()
{
...
PORTB=tabela[vetor[i++]]; //a essência
...
}

(digitei agora baseando em minhas memórias... depois confiro)

Se tiver opção mais otimizada que esta que uso há décadas preciso saber.. sério... meu mundo é o minimalismo...

 

9 horas atrás, vtrx disse:

depois mostra num LCD

 

  • Curtir 1
Postado
27 minutos atrás, .if disse:

 

Mostre-nos outra opção que não o seja por gentileza... ou talvez você não entendeu e/ou não é esta a ideia do garoto e, claro, tampouco a saída da minha função que está extremamente otimizada para exatamente isso: mostrar num display lcd ou 7 segmentos em c puro... sem libs. Considerando que o garoto já sabe varrer os números num display 7seg, ...

const char tabela[]={... //desenhos dos números
void interrupt_uns_200Hz_pra_4_displays()
{
...
PORTB=tabela[vetor[i++]]; //a essência
...
}

(digitei agora baseando em minhas memórias... depois confiro)

Se tiver opção mais otimizada que esta que uso há décadas preciso saber.. sério... meu mundo é o minimalismo...

 

 

Minha citação foi para ele(1hsouza1),no começo do tópico,tipo,use as ideias aqui postadas.

Concordo que meu post, logo após sua ideia, pareceu direcionada a ultima postagem.

My bad.

  • Obrigado 1
  • Membro VIP
Postado

1ª mente: parabéns e que bom que deu certo e ficou satisfeito! Isso é o + importante.

2ª mente e nada importante: de fato como previu o amigo @vtrx houve algum desperdício e com tempo você evolui... mas novamente duas palavras : para bens!

😁

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!