Rotina conversão

Enviado:
03 Mar 2010 21:12
por _blackmore_
para aproveitar melhor o conteúdo de uma eeprom de um pic ... eu preciso de uma rotina para converter valores decimal para hexa (para gravar na memoria) ... e de hexa para binário.
Para não ter que fazê-la (apesar de que já estou a fazendo) eu peço aos amigos que me indiquem algum algoritmo já pronto para utilizar em C para CCS ou C18 ...
Se alguém puder me ajudar ... eu agradeço.
abrax!

Enviado:
03 Mar 2010 21:48
por vtrx
Ja adiantando,é para gravar oque na memo?
Se for wav,ja tenho um programa demo (windows) que faz isso,se não for,me diga como esta armazenando esse decimais,ok?
se for para implementar em uma rotina sua do PIC em C,desconsidere oque falei pois meu prog ja gera um arquivo hex padrão Intel.

Enviado:
03 Mar 2010 23:10
por _blackmore_
eu preciso é para gravar um registro de saídas ... apenas ligar equipamentos ... exemplo hora ligo as saídas do valor binario ... 10010001 ... outra hora .... 11100001 ... e guardando estes valores na eeprom .. eu posso apenas registrar 32 ajustes em binario ... onde existem 255 possíveis em hexa ...... não que eu vá utilizar todos ... mas para utilizar a eeprom para outras funções ( no caso de guardar ajustes de controle ... não tenho mais memoria disponível ...) ... e isso me faz abrir mais possibilidades de melhorar um sistema ...
obrigado pela atenção bixo!
abrax!

Enviado:
04 Mar 2010 07:13
por ze
- Código: Selecionar todos
#define BCD2BYTE( b ) ( ( ( ( ( b ) >> 4 ) & 0x0f ) * 10 ) + ( ( b ) & 0x0f ) )
#define BYTE2BCD( b ) ( ( ( ( b ) / 10 ) << 4 ) + ( ( b ) % 10 ) )
mas isso não vai fazer voce "aproveitar melhor". Pra eeprom é indiferente. Dicas: Guarde como estiver (d ou h) mesmo e faça a conversão só no processamento. E não guarde a todo momento. Apenas grave ao desligar o eqpto mesmo assim só se tiver um valor diferente. Um capacitor +- grande dá conta de fazer isso antes do reset. Ah e não é função. é macro (ja deve saber) portanto use com moderação ou DENTRO de uma FUNÇÃO.
abç