Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print
ELETRÔNICA / ELÉTRICA => Eletrônica Básica => Programação => Tópico iniciado por: Blackmore em 18 de Novembro de 2007, 10:05
-
Galera ... estou iniciando estudos para programar em linguagem Assembly ... para utilizar micro controladores ...
O que eu queria mesmo é saber se alguém aqui tem interesse em aprender e trocar idéias sobre ... por exemplo ... formas diferentes de fazer a mesma coisa com progrmas mais simples, alocação de memórias ...
bom ... fico aqui na espera de alguém que queira compartilhar de sua experiência e quem sabe começar um projeto qqer com micro controladores!!
abraço!
-
Bom dia.
Acho que faz falta ao forum um topico sobre este assunto sim.
Este semestre estou a aprender assembly na Univercidade.
Talves possa dar por aqui alguns palpites.
-
blackmore
Acho que sua idéia é excelente. Eu também gostaria muito de participar e compartilhar, meu nível é de iniciante também.
Talvez poderiamos tomar como base algo como esse cursinho do Prof Adilson Gutierres:
http://www.edutecbauru.com.br/
Fica em aberto para mais sugestões do amigos.
-
Tverm
Acho que faz falta ao forum um topico sobre este assunto sim
este fórum em bem voltado ao CNC, porém existem espaços para outros assuntos que não são relacionados somente a CNC, e este caso de programação na minha opnião é um deles ..!!
vamos mantendo contato ...
NAVEGADOR
Eu também gostaria muito de participar e compartilhar, meu nível é de iniciante também
isso é importantíssimo! nível iniciante!
o site da edutec é bem bacana ... tem umas soluções para estudo até razoáveis ... mas dae tem duas coisas q acho q "podem" deixar a desejar ... sendo:
1-o PIC utilizado neste curso eh um 16F84A, o qual a microchip está meio q "tirando de linha" para deixar o 16F628A, e esse tem algumas funções a mais ... veja bem ... são compatíveis !!!
2-0 o software utilizado esta um tanto quanto desatualizado, funciona mas está defasado atualmente o MPLab disponível eh o 8.0!!
fiz as críticas .. agora faço as sujestões ... :D
1-tomar como base o PIC 16F628A ...
2-tomar base software do MPLab na versão 7.6 ...
3-termos alguns pqnos hard´s para nossos testes ...
4-importantíssimo, manter histórico das experiências !!!
aguardo o pessoal ae para trocarmos mais idéias ou propostas !
abraço!
-
acabou? ???
onde estao as ideias?
-
Ola povo,
Se o objetivo é aprender assembly, recomendo a familia 8051, e não PIC. O assembly do pic é por demais confuso e limitado.
Também existem softwares gratuitos aos montes do 8051, e muito código. Pic compensa se for usar linguagem de alto nível (basic, C)... Atualmente existem chips como o AT89S52 (40 pinos), que são baratos, tipo uns 6 reaus...
Abraços,
Trevis
-
ftrevis
primeiramente boa noite ... :)
Se o objetivo é aprender assembly, recomendo a familia 8051, e não PIC
o objetivo meu é de aprender assembly e usar nos PIC´s por um motivo muito simples ... é de uso comum na empresa onde trabalho e utilizarei esses conhecimentos na empresa ...
O assembly do pic é por demais confuso e limitado.
engraçado que aqui na empresa é justamente o contrário ...
Pic compensa se for usar linguagem de alto nível (basic, C)...
uma mescla entre os dois níveis em determinados casos se faz necessário
Atualmente existem chips como o AT89S52 (40 pinos), que são baratos, tipo uns 6 reaus...
para mim ter 40 pinos e precisar de 8 é um desperdício, principalmente quando tenho o que preciso disponível na empresa ..
Quero dizer com tudo isto que preciso aprender assembly, tenho essa necessidade e aprender C, basic ou qqer outra linguagem não me interessa ... por isso o título ... Programação em linguagem Assembly ... ... ok?
mesmo assim vou procurar saber algo sobre os 8051 que 99% dos Eng. que conheço reclamam ...
Obrigado. :)
Blackmore
-
Cara sua vontade de aprender Assembly é boa mas não pode esquecer as outras linguagens.
Minha experiência inicial foi com "R8C" da renesas que é um micro da família "M16" da Mitsubishi, este micro é bem avançado para mim e a melhor maneira de o programar é mesmo uma mistura entre C++ e Assembly.
Em C++ eu já me oriento mais ou menos.
Agora estou aprendendo Assembly no 8051 é acho que é bem mais fácil e pelo que já vi muito versátil.
É um excelente micro para aprender, já PIC é bem comercial mas pelo que me já foi transmitido por varias pessoas é um pouquinho bem mais complexo.
Mas como disse meu contacto com PIC é pouco.
Em relação a aprender Assembly para PIC neste momento não é muito prioritário, já que no dia a dia minha cabeça tem que trabalhar com 3 linguagens distintas ainda aprender Assembly no 8051 e construir uma CNC.
Hehehe não sobra muito tempo nem espaço dentro da minha cabeça.
-
Olá, pessoal.
Parece-me que, para programar PIC, a linguagem usada é o Assembler. Mas, será que o uso de uma linguagem, como o C compilado, não serviria para essa tarefa?
Um abraço.
Vinícius.
-
vnconrado
ja existem compiladores de C++ para PIC mas com Assembly voce tem a vantagem de modular o codigo de maneira a ele ficar bem menos pesado do que programar em C++ e depois compilar.
Nos os humanos neste caso se bem treinados somos muito melhores a a arrumar codigo que maquina.
Mas a quem misture as duas linguagens no mesmo codigo para facilitar ainda mais a coisa, e ja existem compiladores que aceitam isso.
Mas eu sou novato nisto.
Estou aprendendo ainda.
-
Ola Blackmore,
Não quis dizer que vc "deve" usar "C", foi apenas uma recomendação da familia 8051, pois no inicio do tópico você disse que queria aprender a programar "microcontroladores", e não especificamente o PIC... Sou professor do SENAI-MS, e ensino assembly a anos, quando falo que o assembly da familia 8051 e mais fácil, é por experiência própria. Trabalho pouco com PIC, uso mais 8051 e AVR (meu favorito), porém ensino 8051 que é de longe o mais fácil (mnemônicos simples, e um belo conjunto de instruções). Tenho vários conhecidos que programam profissionalmente com PIC, porém todos usam "C" (quando necessário, mesclam ASM), pois usar ASM "puro" no PIC é improdutivo... Não se incomode de eu dizer que o assembly do PIC é "confuso e limitado" pois é mesmo... poucas instruções, necessidade de chavear bancos, mnemônicos complexos... (pelo menos na série 16F, parece que na série 18F a microchip melhorou alguns pontos).
O que costumo dizer aos meus alunos, é que NÃO devem se "apegar" a alguma familia, ou fabricante, como se fosse religião ou futebol... Tem que ter a mente aberta, escolher a familia e o mcu adequado a cada aplicação... Ferramentas, preço, fornecedor, etc devem ser levadas em conta na hora da escolha. Já que vc trabalha com usuários de PIC, e tem acesso a ferramentas de PIC, talvez seja melhor realmente vc aprender PIC. Mas para aquele usuário que não tem nada a mão, ferramentas, softwares ou conhecidos que possam ajudar, recomendo fortemente 8051.
Em tempo, as vezes, um chip maior custa menos que um chip menor... não é porque tem menos pinos que vai sair mais barato, tem a lei da oferta e procura ai...
Fiquei curioso a respeito das reclamações a respeito do 8051... poderia repassar algumas delas? Talvez eu possa esclarecer alguns pontos.
Abraços,
Fábio Trevisan
-
Tverm
Cara sua vontade de aprender Assembly é boa mas não pode esquecer as outras linguagens
opa !! verdade ... concordo contigo .. mas tem q se começar de algum ponto não eh mesmo? eu escolhi o Assembler e PIC pelas "facilidades" que tenho .. ok?
gostei do teu comentário! um dia terei experiência suficiente para podermos trocar umas idéias mais técnicas!
vnconrado
Parece-me que, para programar PIC, a linguagem usada é o Assembler. Mas, será que o uso de uma linguagem, como o C compilado, não serviria para essa tarefa?
faço minhas as palavras do camarada Tverm ... aqui na empresa tb usamos C ...
ftrevis
muito bom saber que temos pessoas de grande experência aqui no fórum ... pois isso ajuda e muito! troca de experiências ... podes ter certeza que tudo o que tu disse eu vou levar em consideração, quando tiver o momento certo aplicar, mas é que no momento preciso de Assembler e PIC ...
me desculpe se fui rude, tenho esse problema, reconheço isso ... :-[
Tenho vários conhecidos que programam profissionalmente com PIC, porém todos usam "C" (quando necessário, mesclam ASM), pois usar ASM "puro" no PIC é improdutivo...
isso!! essa é a idéia .. porém as pessoas que tenho contato dizem que quem aprende ASM primeiro tem mais facilidade com C depois, justamente por C ser mas fácil, já o inverso não funciona direito ... a confusão é inevitável ... sei que assim que ter meus estudos completos para ASM vou encarar prog em C ... e tenho a certeza que será mais fácil ... mas como falei em outro post ... preciso começar de algo ... e pelo q percebo ASM primeiro me ajudará no futuro ... (coisa estranha!! hehe)
O que costumo dizer aos meus alunos, é que NÃO devem se "apegar" a alguma familia, ou fabricante, como se fosse religião ou futebol... Tem que ter a mente aberta, escolher a familia e o mcu adequado a cada aplicação...
apoio !!! mas neste momento não posso executar!!
Já que vc trabalha com usuários de PIC, e tem acesso a ferramentas de PIC, talvez seja melhor realmente vc aprender PIC. Mas para aquele usuário que não tem nada a mão, ferramentas, softwares ou conhecidos que possam ajudar, recomendo fortemente 8051.
apoio novamente! por e por isso escolhi PIC .. pq tenho mais recursos ... 8051 aqui na empresa nem tem ... é aquela da facilidade dita acima ...
as vezes, um chip maior custa menos que um chip menor... não é porque tem menos pinos que vai sair mais barato, tem a lei da oferta e procura ai...
isso ... mas aqui pagamos pouco pq utilizamos Microchip nos produtos .. compra em grandes quantidades ....
Fiquei curioso a respeito das reclamações a respeito do 8051... poderia repassar algumas delas? Talvez eu possa esclarecer alguns pontos.
essa eu vou demorar um pouco por ter q falar com os Eng aqui .. ok? mas mas farei sim ...
teu comentário agora me deixou mais "esclarecido", talvez seja a melhor palavra", gostei ....
abraço!! :)
-
Pra vcs que gostam dessas frescuras de programação:
http://tinyurl.com/3derok
-
cncnow
Pra vcs que gostam dessas frescuras de programação
detesto o Nascimento ... !! ;D
mas se tivéssemos uns desses seria menos perigosa a nossa vida!
não entendi muito bem o propósito do texto mas ... lembrei do filme!!
abraço!
-
aos colegas interessados ...
fiz uma pequena rotina para usar um PIC 16F628 como controle PWM ... por software sem a saída adequada (CCP), isso para controlar motores DC ...
alguém está interessado em discutir e melhorar essa idéia?
abraço!
-
Grande Blackmore,
fiz uma pequena rotina para usar um PIC 16F628 como controle PWM ... por software sem a saída adequada (CCP), isso para controlar motores DC ...
alguém está interessado em discutir e melhorar essa idéia?
Conheço muito pouco do PIC. Se quiser discutir o controle "conceitualmente", estamos por aqui. Só não vou poder ajudar muito sobre detalhes de assembly do PIC, tá?
Mas diga lá, como foi que você fez este controle?
Abraços,
Rudolf
-
Rudolf Waller
diga lá, como foi que você fez este controle?
é basicamente um contador, utiliza da interrupção TMR0 para decrementar de um valor acionado por botoes (cresc ou decresc) ... abaixo segue a programação da interrupção apenas ...
;TRATAMENTO DA INTERRUPÇÃO DE TMR0
BCF INTCON,T0IF ;LIMPA FLAG DA INT.
MOVLW .256-.250 ;SETA TIMER P250MS
MOVWF TMR0 ;REINICIA TMR0
INCF TEMPO,F ;INCREMENTA TEMPO
MOVLW .15 ;COLOCA 16 EM WORK
XORWF TEMPO,W ;COMPARA TEMPO COM 16
BTFSC STATUS,Z ;TESTA BIT Z DO REG. STATUS
CLRF TEMPO ;ZERA TEMPO
MOVF INTENSIDADE,W ;MOVE INTENSIDADE PARA W
SUBWF TEMPO,W ;SUBTRAI TEMPO DE INTENSIDADE
BTFSS STATUS,C ;TESTA BIC C DO REG. STATUS
;VERIFICA SE TEMPO E MENOR QUE INTENSIDADE
GOTO LIGA_LAMPADA
DESLIGA_LAMPADA
BCF LAMPADA ;DESLIGA LAMPADA
GOTO SAI_INT
LIGA_LAMPADA
BSF LAMPADA ;LIGA LAMPADA
;FIM DA INTERRUPÇÃO
SAI_INT
SWAPF STATUS_TEMP,W
MOVWF STATUS ;RECUPERA STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W ;RECUPERA W
RETFIE ;RETORNA DA INTERRUPÇÃO
.... estou tentando agora fazer a conversão do contator binario para os niveis de intensidade em 1 display de 7 segmentos dae sim posto um video do controle funfando ...
este mesmo programa serve para qqer controle PWM, seja um motor DC ... seja uma lâmpada ... vou mostrar com o motor pois eh o q tem na minha giga de ensaios ...
abraço! e mande sujestões ...
-
Grande Blackmore,
é basicamente um contador, utiliza da interrupção TMR0 para decrementar de um valor acionado por botoes (cresc ou decresc)
Pelo que entendi dos comentários do programa (não conheço o assembly do PIC), este PWM pode ser ajustado de 0 a 16, é isso mesmo?
Qual é a freqüência desta interrupção? Se esta freqüência for muito baixa, você poderá ver o display de 7 segmentos piscando (flicker).
.... estou tentando agora fazer a conversão do contator binario para os niveis de intensidade em 1 display de 7 segmentos
Não entendi o que você quis dizer com "conversão do contator binario para os niveis de intensidade"...
dae sim posto um video do controle funfando ...
Você tem um galvanômetro ou um multímetro analógico? se tiver, tente fazer as alterações seguintes. Dá um efeito bem bacana, bom prá mostrar prá fazer impressionar molecada que acha que a gente manja alguma coisa (fiz aqui em casa tempos atrás):
-Altere o programa para 60 níveis os invés de 16;
-A cada 1s incremente o nível;
-Quando chegar a 60, zere o nível.
Fica parecendo um relógio de ponteiro :)
vou mostrar com o motor pois eh o q tem na minha giga de ensaios ...
Gostaria de ver, por favor :)
abraço! e mande sujestões ...
Algumas já foram :)
Abraços,
Rudolf
-
Rudolf Waller
Pelo que entendi dos comentários do programa (não conheço o assembly do PIC), este PWM pode ser ajustado de 0 a 16, é isso mesmo?
na verdade 15.. um dos níveis é o motor desligado! ;D
Pelo que entendi dos comentários do programa (não conheço o assembly do PIC), este PWM pode ser ajustado de 0 a 16, é isso mesmo?
a frequência é o suficiente para que o display não fique piscando :) ... por volta de 250KHz se não me engano ...
Não entendi o que você quis dizer com "conversão do contator binario para os niveis de intensidade"...
é que no projeto tem um display que mostra o nível no PWM em hexadecimal que vai de 1 a F ... agora estou tentando implementar isso no display multiplexado ... de 0 a 15 ... sendo que cada um toque no botão (up ou down) irá mostrar no display o nível ou "marcha" do motor!! :)
Você tem um galvanômetro ou um multímetro analógico? se tiver, tente fazer as alterações seguintes. Dá um efeito bem bacana, bom prá mostrar prá fazer impressionar molecada que acha que a gente manja alguma coisa (fiz aqui em casa tempos atrás):
-Altere o programa para 60 níveis os invés de 16;
-A cada 1s incremente o nível;
-Quando chegar a 60, zere o nível.
tenho o multimetro sim ... vou fazer ... e mudar o prog para os 60 segundos!! hehe
boa sujestão ...
bom .. a semana começa .. a correria tb ... vamos dando o andamento na semana ok?
e obrigado ae a atenção!
abraço! (fique na espreita!)
-
é pessoal ... estou começando a gostar dessa brincadeira ...
"Fiz" um controle PWM do curso q terminei esta semana mas dei uma incrementada ...
O controle comanda a velocidade de um pequeno cooler e ...
1 - O display mostra a tensão que está sendo enviada para o motor
2 - O display mostra também qual a porcentagem do total da tensão está sendo enviada ao motor...
vejam o vídeo que está no link ... http://www.youtube.com/watch?v=j0M4yIoB2ow (http://www.youtube.com/watch?v=j0M4yIoB2ow)
notem que qdo eu paro o aumento da tensão em 3,4volts o motor é ligado ... e se escuta um pequeno zumbido (além do jornal nacional) e que qdo a tensão é diminuída o zumbido vai diminuindo!! :D
abraço!
[youtube=200,170]http://www.youtube.com/watch?v=j0M4yIoB2ow[/youtube]
-
Grande Blackmore,
"Fiz" um controle PWM do curso q terminei esta semana mas dei uma incrementada ...
Olha só o cara!!! Comentou que pretendia fazer e horas depois fez um PWM tão inovador que imita perfeitamente o Jornal Nacional :o
Esse tem futuro: um PWM aqui, um noticiário ali, ... E tudo isso no último dia do curso do PIC :) Aonde vamos parar deste jeito ? ? ? :D
Parabéns!
Abraços,
Rudolf
-
Rudolf Waller
Olha só o cara!!! Comentou que pretendia fazer e horas depois fez um PWM tão inovador que imita perfeitamente o Jornal Nacional
huahuahuahuah, isso é um segredo! huahuahua
abraço!!!
-
Puts, copiar rotina de apostila e ou livro e dizer que fez é fácil, quero ver fazer sair o som da vinheta do jornal nacional nas modulações no motor !!
-
faaala caarada !!! hahaha
copiar o canário ... fiz uns cursos ... e pow ... abre a mente!! hehe
estou de férias no trabalho .. aparece aqui em casa
abraço!
-
Ae PESSOAL SOU NOVO AQUI NO FORUM E GOSTARIA DE UM AUXILIO EM PROGRAMAÇÃO EM
ASSEMBLY EM COMO ESTAR FAZENDO UM bubbleSort PARA ORDENAR UMA SEQUENCIA NUMERICA
PODERIAM ME AUXILIAR ?
-
... COMO ESTAR FAZENDO UM bubbleSort PARA ORDENAR UMA SEQUENCIA NUMERICA
"estar fazendo" é ruim, hein ? Gerundismo me causa urticária ... :P :P :P
http://pt.wikipedia.org/wiki/Bubble_sort
-
ola tudo bem.
Alguem sabe me disser a programação para contar passageiros com o 8051 e mostrar num dysplay de lcd jhd 162a em assembly. Usando no maximo 16 passageiros, pra aparecer no lcd quantos passageiros tem e se sai um, também avisar.
Obrigado.
-
Vamos reabrir esse topico de assembly!!!!
-
Vamos reabrir esse topico de assembly!!!!
Fique à vontade ...