hexa2bin e bin2hexa

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

hexa2bin e bin2hexa

Mensagempor rcakto » 15 Ago 2010 12:57

ae alguem poderia me informar um conversor online de hexa X bin que trabalhe direito a 32 bits??

achei alguns mas nenhum trabalha direito com o 32 bits, sempre falta algum valor
ex.:

http://www.calculadoraonline.com.br/vie ... inario.php

hexa que digitei 00000001
bin que ele me forneceu é 00000000000000000000000000001


alguem saberia me informar?? pode ser algum programa para instalar no pc tb, não tem problema.
rcakto
Word
 
Mensagens: 787
Registrado em: 09 Jun 2010 00:57
Localização: vitoria ES

Mensagempor barboza » 15 Ago 2010 13:24

tenta o winhex
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor rcakto » 15 Ago 2010 22:00

barboza, eu preciso desse conversor para trabalhar nos codigos do keil... todos os exemplos estao em hexa, sem contar que fica bem mais limpo o codigo trabalhando em hexa do que em bits... sem contar que é certo de errar na contagem dos bits.. sempre acaba faltando 1 ou 0 no meio de tudo...
rcakto
Word
 
Mensagens: 787
Registrado em: 09 Jun 2010 00:57
Localização: vitoria ES

Mensagempor barboza » 15 Ago 2010 22:25

rcakto escreveu:barboza, eu preciso desse conversor para trabalhar nos codigos do keil... todos os exemplos estao em hexa, sem contar que fica bem mais limpo o codigo trabalhando em hexa do que em bits... sem contar que é certo de errar na contagem dos bits.. sempre acaba faltando 1 ou 0 no meio de tudo...


Não entendi o codigo do Keil...
Poe um exemplo ai....
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor rcakto » 15 Ago 2010 23:36

#define BIT0 0x01
#define BIT1 0x02
#define BIT2 0x04
#define BIT3 0x08
#define BIT4 0x10
#define BIT5 0x20
#define BIT6 0x40
#define BIT7 0x80
#define BIT8 0x0100
#define BIT9 0x0200
#define BIT10 0x0400
#define BIT11 0x0800
#define BIT12 0x1000
#define BIT13 0x2000
#define BIT14 0x4000
#define BIT15 0x8000
#define BIT16 0x010000
#define BIT17 0x020000
#define BIT18 0x040000
#define BIT19 0x080000
#define BIT20 0x100000
#define BIT21 0x200000
#define BIT22 0x400000
#define BIT23 0x800000
#define BIT24 0x01000000
#define BIT25 0x02000000


algo desse genero, para eu entender preciso ler em binario para saber o que esta afetando, e acho que devo colocar em hexa para deixar o codigo mais limpo e menor
rcakto
Word
 
Mensagens: 787
Registrado em: 09 Jun 2010 00:57
Localização: vitoria ES

Mensagempor barboza » 15 Ago 2010 23:43

Bem, eu não uso isso.

Acho mais facil escrever e ler algo assim:

Código: Selecionar todos
#define BIT_0 (1<<0)
...
#define BIT_15 (1<<15)
...


ou se for escrever em alguma variavel direto, escrevo assim:

Código: Selecionar todos
u32_variavel = (1<<15) | (1<<10);


Não acha legivel?
O valor em hexa não interessa, deixa isso pro compilador.
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor Djalma Toledo Rodrigues » 16 Ago 2010 10:05

rcakto escreveu: #define BIT0 0x01
#define BIT1 0x02
#define BIT2 0x04
////
#define BIT24 0x01000000
#define BIT25 0x02000000


Bit só pode ser 0 ou 1

Não seria:
<------> #define BIT0 0x1
<------> #define BIT1 0x1
////
<------> #define BIT25 0x1

<----> ?

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor barboza » 16 Ago 2010 10:20

Djalma Toledo Rodrigues escreveu:Não seria:
<------> #define BIT0 0x1
<------> #define BIT1 0x1
////
<------> #define BIT25 0x1

<----> ?

DJ


Qual a diferença nos define além dos nomes?
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor MarcusPonce » 16 Ago 2010 12:47

Acho que o mais comum é nos referirmos a um bit que tem um nome, pois tem uma função específica. Logo é melhor usar um #define com este nome do que um #define genérico como por exemplo #define BIT_5 (1<<5)

Se precisar me referir ao bit genérico então também prefiro usar a notação (1<<5) em vez de um #define.
MarcusPonce
Byte
 
Mensagens: 166
Registrado em: 12 Fev 2007 13:58
Localização: Campinas - SP

Mensagempor barboza » 16 Ago 2010 13:02

MarcusPonce escreveu:Acho que o mais comum é nos referirmos a um bit que tem um nome, pois tem uma função específica. Logo é melhor usar um #define com este nome do que um #define genérico como por exemplo #define BIT_5 (1<<5)

Se precisar me referir ao bit genérico então também prefiro usar a notação (1<<5) em vez de um #define.


Com certeza, o nome BIT_5 foi só um exemplo.
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor rcakto » 16 Ago 2010 19:00

bom de acordo com o codigo que eu tenho aqui, por exemplo:

quero colocar o pino p2.13 como saida, entao uso set_bit ( FIO2DIR,BIT13 ); onde #define BIT13 0x2000 entao não irei precisar de colocar
#define BIT13 00000000000000000010000000000000

pelomenos é assim que eu to seguindo os exemplos do kit que eu comprei.. e lembrando que eu não sei programar ARM, estou seguindo os exemplos que veio no kit + o livro Microcontrolares ARM7 - NXP - LPC213X e o livro do fabio ARM7 microcontrolador 32 bits como forma de aprendizado...

por isso que estou procurando este conversor de hexa bin
rcakto
Word
 
Mensagens: 787
Registrado em: 09 Jun 2010 00:57
Localização: vitoria ES

Mensagempor barboza » 16 Ago 2010 19:33

rcakto escreveu:bom de acordo com o codigo que eu tenho aqui, por exemplo:

quero colocar o pino p2.13 como saida, entao uso set_bit ( FIO2DIR,BIT13 ); onde #define BIT13 0x2000 entao não irei precisar de colocar
#define BIT13 00000000000000000010000000000000

pelomenos é assim que eu to seguindo os exemplos do kit que eu comprei.. e lembrando que eu não sei programar ARM, estou seguindo os exemplos que veio no kit + o livro Microcontrolares ARM7 - NXP - LPC213X e o livro do fabio ARM7 microcontrolador 32 bits como forma de aprendizado...

por isso que estou procurando este conversor de hexa bin


Código: Selecionar todos
FIO2DIR = (1<<13);
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor rcakto » 16 Ago 2010 19:55

entao se eu quero dar set ou clear em um determinado bit so preciso digitar o nome do registro = (1<<bit) para set e (0<<bit) para clear???

IO0DIR = (1<<2) ou IO0DIR = (0<<2)??
rcakto
Word
 
Mensagens: 787
Registrado em: 09 Jun 2010 00:57
Localização: vitoria ES

Mensagempor barboza » 16 Ago 2010 19:57

rcakto escreveu:entao se eu quero dar set ou clear em um determinado bit so preciso digitar o nome do registro = (1<<bit) para set e (0<<bit) para clear???


ñ... neste caso é (1<<bit) tanto para set quanto para clear. veja o datasheet, e leia sobre o registrador que esta configurando.
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor rcakto » 16 Ago 2010 20:02

sobre o iodir eu so usei ele como exemplo, mas pelo que eu entendi entao eu sempre uso 1<<bit soque tenho que sempre saber quando o bit vai estar em 1 ou em 0??

p2.13 é um led e p4.29 é um botao

for ( ;; ) { // Looping infinito
if ( test_bit(FIO4PIN,29) ) {
// botão não está pressionado, ou seja, =1
set_bit ( FIO2SET,13 ); // seto o bit P2.13
} else {
// botào pressionado, ou seja P4.29=0
set_bit ( FIO2CLR,13 ); // mando ZERAR o P2.13
}

}

ficaria

for ( ;; ) { // Looping infinito
if ( test_bit(FIO4PIN,29) ) {
// botão não está pressionado, ou seja, =1
FIO2SET = (1<<13 ); // seto o bit P2.13
} else {
// botào pressionado, ou seja P4.29=0
FIO2CLR= (1<<13 ); // mando ZERAR o P2.13
}

}

isto está certo??

e o caso do IODIR?? colocando 1 no bit ele esta em modo saida e 0 ele esta em modo entrada, como eu mudo 0 e um simples como o (1<<bit)??
rcakto
Word
 
Mensagens: 787
Registrado em: 09 Jun 2010 00:57
Localização: vitoria ES

Próximo

Voltar para ARM

Quem está online

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

cron

x