SPRINTF & KEIL

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Mensagempor styg » 02 Dez 2010 09:59

proex escreveu:Styg, tempos atras eu fiz um projeto de um nobreak com o 2368 e internamente eu tratava as leituras de tensao com 2 casas depois da virgula, pra obter o True RMS...essas coisas.

Mas na hora de mostrar o valor da rede no display, só precisava mostrar o valor inteiro. Então eu usei sprintf(display,"%3d", TensaoRede) e pronto.

Os nobreaks estão rodando por ai até hoje assim.

Mas depois da versao 3.50 do keil, nunca mais consegui fazer isso.


Então, imagino q no seu caso funcionou pq sua faixa de valores esta dentro do limite de 3 casas, se fosse instalar o nobreak numa rede de 1200v, ele nao ia respeitar a formatação e ia mostrar 1200 no display e provavelmente bagunçar td.
Lucas
Avatar do usuário
styg
Word
 
Mensagens: 799
Registrado em: 16 Out 2006 08:24
Localização: Floripa abaixo de zero.

Mensagempor fabim » 02 Dez 2010 10:05

styg, eu sempre falei pro animal que "/0"era lo finito de qualquer coisa no ANSI C.

Tipo.

Char text[50]
long tensao;

tensao = 1236; " na verdade 123,6" os calculos foram feitos com int

sprintf(text, "%d",tensao/10);
ou
sprintf(text, "%d",tensao);
text[3+1] = 0; // 3 casas que me enteressam, na proxima =0; fim

LCDout(text); text tem 50 bytes, masi LCDout, vai enviar bytes até encontrar o "\0".

Eu resolvi assim, sobre a quantidade de bytes.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Anterior

Voltar para ARM

Quem está online

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

x