Como fazer uma soma com 24 ou 32 bits?

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor fabim » 09 Dez 2010 11:06

Guri depois de tantos elogios, acho que me apaixonei por você !!

Reparou que eu não me referi a sua pessoa, e sim ao que o vtrx escreveu ?

"" Ele disse que era uma linguagem unica, e que não era questão de gostar""

Amiguinho, eu programo em 4 linguens, entre elas ASM for pic...

Sabe porque não uso mais o ASM ? Adivinha ?

Comece a brincar com C,pascal,basic, ja conhecendo asm, depois me diga se vai querer mecher com asm novamente...

Melhor, pergunte para a maioria aqui, que começou com ASM, e hoje estão em Basic, Pascal, ou C, se eles querem voltar ao asm.......

Se procurar mensagens minhas a mais de uns dois anos, vai ver eu defendendo asm com garras, e hoje despreso o ASM mais que o proprio PROEX... Manda uma cotação pra ele, pra usar PIC... hehehehe
Não sou pago pra ser um filosofo escriba de forum, mais sou pago pra ser muito bom no que faço na empresa que eu trabalho...

Detalhe, eu ajudei e ajudo muitas pessoas que eu vejo que tem dificuldade, e que é o contrario de preguiça, cozimento, e folga...

Tu defende o ASM, e não sabe fazer uma conta de ADD32 ?
Que programador é você ?
Você não sabe fazer um

MOVFW DADO
ADDWF VAR,W
testar carry, se houve somar com a proxima MSB ?
Que qué isso eim?

Ter que procurar site ? Mostrar rotina ? Ta loco.

Entende ?

Nem sei porque eu ainda entro nesse forum de pic, ta loco, só desânimo...
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!!!?

Mensagempor fabim » 09 Dez 2010 11:32

OBS: E a cada postagem, decepção.

E outra, o PROEX é burro igual uma porta.. E outra, que eu bem saiba ele gosta de mulheres, nem adianta você vir com cantadinhas baratas...
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!!!?

Mensagempor msamsoniuk » 09 Dez 2010 11:37

entao somar ffh com ffh eh uma questao de feh e de encontrar o carry! ;)

Djalma Toledo Rodrigues escreveu:Se o µC é de 8 bits soma Byte a Byte

tal qual aqui na real se soma digito a digito, decimal

Casos extremos:

00H + 00H = 00H
FFH * FFH = 1FEH isto é, FEH + Carry ( vai um )

DJ
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor vtrx » 09 Dez 2010 11:53

Irmãos,parem de brigar de verdade,a linguagem de programação não indica se voce é avançado ou não,isso depende das limitações da cada um.
Por exemplo,muitos acham que são 'avançados' pois programam microcontroladores em C,mas não conseguem abrir uma porta do PC em C ou fazer uma comunicação I2C(mestre escravo) de um micro 'novo'.
,imaginem em C++ e afins.
Guri,continue perguntando sim na linguagem que voce utiliza.
O problema é que as maioria das perguntas em ASM são mais difíceis e voce não terá muitas respostas precisas neste forum, 'anymore'.
Voltando a matemática,faça uma coletânia de rotinas matemáticas utilizando um arquivo '.inc' e utilize nos seus projetos.
Uma dica,para rotinas de precisão,velocidade usando o áudio,no seu caso,nunca use C ou afins,verá que ninguem vai postar uma rotina mais eficiente a não ser em ASM,é só comparar.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor msamsoniuk » 09 Dez 2010 12:06

jah que todos estao dando opiniao...

eu sempre fico um pouco decepcionado com a dependencia que a maioria das pessoas da area tem em relacao ao software. acho que qualquer problema tem sua parte de hardware e software, mas as pessoas depositam sempre muita carga em cima do software, tentando minimizar o hardware.

na minha opiniao, eh disso que surge a necessidade de utilizar asm.

ironicamente, quando se trabalha com hardware puro, ninguem cria netlists no braco para entao gerar um bitstream de FPGA (o que equivaleria a programar a FPGA em asm). normalmente utiliza-se linguagens de alto nivel, como VHDL ou verilog, que sao interpretadas por um sintetizador que gera um bitstream.

daih eu fico pensando: pq com software deveria ser diferente?

fabim escreveu:OBS: E a cada postagem, decepção.

E outra, o PROEX é burro igual uma porta.. E outra, que eu bem saiba ele gosta de mulheres, nem adianta você vir com cantadinhas baratas...
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor ze » 09 Dez 2010 14:36

fabim escreveu:Quando você evoluir um pouco, quero ver mexer com asm no ARM..

Fico imaginando você usar uns 300K tudo em asm!!!! Você ja foi despedido, o produto faleceu, e ainda ta escovando bit!!!

por gentileza algum assembleiro pode contraargumentar?
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor vtrx » 09 Dez 2010 17:34

Olha lellis,sei que vc tem outro nick no forum da Labtools,e lá vc anda se ' comportando' bem.
Não devemos ficar novamente debatendo linguagem de programação,o problema aqui é que o Fabim fala demais e não se tocou que ele cita outros microcontroladores e seu 'novo' desafio,o C,como se estivesse reaprendendo microcontroladores novamente,pois seus posts antigo(ASM) são muito melhores e com rotinas boas que suas dúvidas em C atualmente.
Não entendo porque então ele fica na área dos 'Pics' e respondendo em C a perguntas em ASM sobre pic...?
Sobre ser despedido por tempo de programação,isso depende do trablho que se está e depende de pouca experiencia em programação,pois em ASM rotinas grandes se usa arquivos .inc (include) normalmente,apenas carregando as variáveis e pegando os resultados.
300 k,pelo menos para mim,não é nada,afinal geralmente tentamos fazer o melhor software possível e uma vez só.
Sobre 'escovar bits',todos aqui escovam bits,ja viram quantos pinos tem um microcontrolador?A não ser que o fabim programando em C faz com que um microcontrolador tenha apenas o pino de alimentação,o resto fica no código dele em C(me passa essa rotina).
A fabim,seu Hardware é que?Um botão e um Led?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor fabim » 09 Dez 2010 18:22

claro né ? Acha que vou ficar desperdiçando hW ? hahahaha

org 0x00
goto main
org 0x04
retfie

main:
MOVLW ABCDEFGH
MOVWF TRISB

Principal:
BTFSS PORTB,X
BSF PORTB,y
BTFSC PORTB,x
BCF PORTB,y
goto Principal

á sim, to usando os pull up do pic, e um resistor de 470R para o led vermelho.
Configurei os fuses no projeto do MPLAB.
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!!!?

Mensagempor vtrx » 09 Dez 2010 20:53

Resolví 'colar' a versão do seu soft mais 'avançado'.
OBS:Foi retirado de um forum sobre Pic usando linguagem de programação 'avançada',a dúvida era porque não funcionava e foi orientado por programadores 'avançados' que tambem tem registro aqui;
Código: Selecionar todos
#include <16F628A.h>
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD
#use delay(internal=4000000)


#define botao PIN_A1
#define LED PIN_B3



void main() {
output_low(LED);
while(TRUE)
{
if (input(botao) == 0)
{
output_high(LED);
}

}
}

De nada...
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor ddspereira » 09 Dez 2010 22:03

sou iniciante no mundo dos microcontroladores comecei a mexer com C baseado no Mikroc o entendimento é bem rapido e dá para fazer muita coisa, agora em ASM não consegui fazer um led piscar, mais vejo por ai muita gente falando que ASM é melhor por estar mais proximo a maquina, gostaria que os Srs que são experiente em programação, falasse um pouco sobre as duas linguagens, existe realmente essa diferença gritante??? ou os compiladores em C estão mais modernos assim compilando um codigo mais leve e com pouco bug

obrigado.
ddspereira
Bit
 
Mensagens: 42
Registrado em: 24 Set 2009 23:34

Re: Como fazer uma soma com 24 ou 32 bits?

Mensagempor ivan » 09 Dez 2010 22:39

Guri escreveu:Bom, alguém aí sabe me informar sobre uma rotina ou como faze-la, onde eu consiga somar até 24 ou 32 bits de comprimento com numeros inteiros...

Com 16 bits tem varios exemplos, mas com 24 ou 32 não encontrei...


Guri,

Vejo pelo menos dois caminhos:

1) ASM - Pega um exemplo de soma em 16 bits, estude-o e expanda para 32 bits.

2) C - Pega um compilador C(MikroC, CCS, Hitech C) e compila o seguinte programa em c:
Código: Selecionar todos
int main() {
 int a, b, c;

 a = 0;
 b = 10;

 c = a + b;

}


E dá uma estudada no código ASM gerado.

Espero ter ajudado
"A mente que se abre a uma nova idéia jamais volta ao seu tamanho original." (Albert Einstein).
Avatar do usuário
ivan
Word
 
Mensagens: 618
Registrado em: 12 Out 2006 21:27

Mensagempor fabim » 10 Dez 2010 00:11

vtrx escreveu:Resolví 'colar' a versão do seu soft mais 'avançado'.
OBS:Foi retirado de um forum sobre Pic usando linguagem de programação 'avançada',a dúvida era porque não funcionava e foi orientado por programadores 'avançados' que tambem tem registro aqui;
Código: Selecionar todos
#include <16F628A.h>
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD
#use delay(internal=4000000)


#define botao PIN_A1
#define LED PIN_B3



void main() {
output_low(LED);
while(TRUE)
{
if (input(botao) == 0)
{
output_high(LED);
}

}
}

De nada...


Sacrilégio, os caras não desligaram o comparador analogico do porta, e não setaram como entrada o bit do porta, e não colocaram como saida o portb;
Pior de tudo, se botão ==0, seta bit, mais e ai, vai estar sempre setado, nunca vai zerar ?

if (input(botao) == 0)
{
output_high(LED);
}else{
output_low(LED);
}


cara, outro sacrilégio, não sei porque mais isso ta com uma **** cara de CCS, ai ja explicaria tudo...
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!!!?

Mensagempor ze » 10 Dez 2010 08:40

ok vt ...desejo-te sucessos... é verdade!
um argumento que não apresentou é que numa aplicação em que não pode haver bugs - médica, militar, aero - o asm tende a ser muito + confiável e quase obrigatório. já tive contato com as duas. Mas em geral...


...
amigo desespereira, voce pode chegar perto da máquina, mas tão perto que vai ter que colar seu rosto nela e não descola [e não decola] mais. se voce for se casar com o pic até que a morte os separe, até que poderia criar alguns filhos com o asm como padrinho. neste caso nada de adultério com outros MC´s pois seu marido é ciumentíssimo e não permite que voce use as mesmas palavras aos concorrentes. caso voce ache um parceiro melhor, ele vai ser extrangeiro e vai demorar um pouco pra voce aprender sua língua e conquistá-lo. agora se voce não for muito fiel e gosta de uma suruba, uma das saídas é o seu c. com ele voce pode trair seu parceiro (pic) usando as mesmas palavras com seus amantes. em outras palavras, todos seus amantes vão gostar do seu c.
com relação a otimização do codigo, não esquenta. 1º os compiladores (htech.p.ex.) estão tão bem otimizados que o cod gerado fica=asm. 2º os mc´s tem cada vez + memória e cada vez menos caros. p.ex. um arm lpc 32 bits faz muito mais por muito menos que um pic equivalente. (voce pode usar [quase] o mesmo fonte em c pro arm e pic e etc, lembra?)

bom no momento só tenho estes argumentos.

ah e vatomanocuidado com o nervosim. ouvi dizer que ele quase empatou com chuck norris numa disputa pra ver quem apresenta um melhor argumento com relação a qualquer coisa. rs
amiguim, releia e reflita mt5:5

sucessos a todos.
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor Guri » 10 Dez 2010 09:38

KAKAKAaaaaaa....

Só rindo mesmo fabimzinho....


Mas dexia pra lá, não adianta!

Agradeço muito a todos os amigos...

Eu estou analizando todas as dicas e vou postar aquí os resultados....

AOS MODERADORES, não tirem esse post daquí por favor...
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Mensagempor fabim » 10 Dez 2010 09:48

Guri escreveu:KAKAKAaaaaaa....

Só rindo mesmo fabimzinho....


Mas dexia pra lá, não adianta!

Agradeço muito a todos os amigos...

Eu estou analizando todas as dicas e vou postar aquí os resultados....

AOS MODERADORES, não tirem esse post daquí por favor...


KKKKKKAAAAKAKAKAKA, não tirem o meu também por favor!!

lellis !! go ahead!!!

OBS: fabim ja é diminutivo de fabio, fabimzinho não existe, pois não se escreve M antes de Z.... isso prova ainda mais porque seus algoritmos não funcionam!!! hehehehe
BZF dado,x
BÇF dado,y

hehehe, é zueira eim, não estou te agredindo!!!
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!!!?

AnteriorPróximo

Voltar para PIC

Quem está online

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

cron

x