Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
paulo celio

Arduino (de novo)

Recommended Posts

Bom Dia:

Sou um eletrônico do tempo dos TTLs, programador de PICs(assembly) que está conhecendo agora o arduíno. Se alguém tiver um programa para arduíno (de umas 5 folhas, extenso, com verificação de sensores e acionamento de portas) comentado e que puder disponibilizar, eu agradeceria. Pretendo estudá-lo para me ambientalizar com essa plataforma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@paulo celio ,

 

Se você programou em Basic, experimente olhar o tópico destacado sobre Programação para AVRs em Basic com o Bascom.

 

http://forum.clubedohardware.com.br/topic/937085-tutorial-de-projetos-com-avr-design-programação-em-basic-e-assembly-e-simulação-no-proteus/

 

Paulo

Editado por aphawk
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

...e se você preferir outra linguagem, sugiro que estude um pouco o MC (geralmente um avr) do arduíno e busque um compilador pra ele. Seus problemas acabam num piscar de led (inventei isso agora. uma evolução do "se piscar led domina o mundo" e tal)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia:

@aphawk

Agradeço a ajuda@Isadora Ferraz  

Aproveitando a oportunidade, gostaria de esclarecer com vocês uma dúvida:

O assunto é diretiva mpasm (IF):

IF < expressão>

       bloco de instruções

ELSE

       bloco de instruções

ENDIF

 

Em <expressão> posso colocar um registrador (GPR) como:

 

Contagem  equ   0x20

letras          equ   0x21

 

IF Contagem > 5   (ou contagem ==5) ou (contagem >letras)  

       bloco de instruções

ELSE

       bloco de instruções

ENDIF

 

No material disponibilizado pela microchip não fica claro...

 

Paulo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estas diretivas não são pra 'rodar dentro' do mc. Elas 'existem' apenas durante os momentos da compilação, ou seja, é pro compilador tomar as decisões e desviar o 'assunto'. Ou seja de novo, IF,ELSE,ENDIF não fazer parte das instruction set do seu mc. E a microchip não tem nada com isso. São 'leis' mais globais, entende? Mas como tem uma mania pra cada lôco, não sei se a mchip incorporou isso no assembler do IDE... provavelmente não.

 

Bem, mas é o seguinte, pelo menos em c é algo assim. Baseei nisso...

 

#define simular_apenas

#if defined simular_apenas

PORTB=0b10101010;

#else

PORTB=0b01010101;

#endif

 

Só UMA das instruções vai pra memória do mc

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me deu vontade exemplificar melhor devido a uma tradicional coincidência temporal. Como não gosto de passar vontade...

Perceba que o trecho do fonte abaixo deve rodar sem problemas tanto no compilador pro pic quanto pro atmega bastando alternar o // comentário. Perceba que DDRC não existe no pic e PORTC existe nos 2.
 

//#define ATMEGA16
#define PIC16F887

void main( void )
{
unsigned int a,b;

#if defined PIC16F887
TRISA=0x01;
TRISB=0x00;
TRISD=0x00;
TRISD=0x00;
#endif

#if defined ATMEGA16
DDRA=0xfe;// PA.0=entrada analógica
DDRB=0xff; //tudo saída
DDRC=0xff; //tudo saída
DDRD=0xff; //tudo saída
#endif

PORTC=PORTD=0;

...

Sei lá se ajudei. Mas tentei né...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde @Isadora Ferraz

 

Ajudou sim. Analisando tudo cheguei à conclusão que o termo <expressão> pode sim conter um GPR que, nada mais é que um endereço onde está armazenado uma informação.

 

Assim, acredito que isso seja válido:

sinal  equ  0x20  ; GPR onde será armazenada a variável sinal

 

IF (sinal >5)        ; como no arduíno

  bloco de instruções 1

ELSE

  bloco de instruções 2

ENDIF

Compartilhar este post


Link para o post
Compartilhar em outros sites

interessante amigo @paulo celio . Devo pedir pra que você faça o teste e nos mantenha informados. Ao meu ver isto não se encaixa na linguagem nativa assembly do seu mc e nem mesmo faz parte do c nem arduíno. São diretivas, ou seja de novo, literalmente direções pra onde compilador (no caso assembler) desvia "apenas" no momento da compilação.

 

Aprofundando um pouco mais, vejamos.. Se:

sinal equ 0x20

este:

IF (sinal >5)

sempre vai ser verdadeiro pois está verificando o valor numérico 'sinal' pois é o mesmo que

IF (32>5) 

e não necessariamente o "conteúdo" que está "dentro" do "sinal"

Então por gentileza, confirme e nos informe...

 

Aproveite o momento pra cogitar alguma introdução na linguagem c

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Isadora Ferraz

 

Prezada colega:

 

Não houve a necessidade de montar um programa e testar minha teoria (furada) na prática...

Analisando todas as informações, as que foram gentilmente passadas por você e as colhidas por mim na internet, vi ( de uma forma muito clara, como uma inspiração) a resposta para as dúvidas que perturbavam a minha alma nesse texto  extraído da nota de aplicação  DS33014L da Microchip:

 

“This directive is not an instruction, but used to control how code is assembled, not how it behaves at run-time. Use this directive for conditional assembly or to check for a condition, such as to generate an error message”.

 

Quanto a estudar a linguagem C, confesso que eu me sinto mais à vontade programando em assembly apesar de muitos acharem essa linguagem difícil para programas complexos (pelo menos até 8kword, eu não acho).

Boa parte do trabalho de se programar em C foi feito pelo criador do compilador, o resto do trabalho é feito pelo programador e dizem que é mais difícil achar bugs.

Parte da satisfação de se criar um código fica com o criador do compilador.

Tenho simpatia pelo BASIC, mas tem pouco material disponível para PICs. O único livro que trata do assunto sumiu das prateleiras.

E antes que você diga que existem outros microcontroladores no mercado, eu digo que prefiro ser “bom” num só do que ser “mais ou menos” em vários.

De certa forma eu já estou criando alguns códigos em C, pois tenho um arduino UNO, para experiências.

Pode ser que não tenha nada a ver, mas... de repente, pode ser que tenha  tudo a ver com o filme “sindrome de caim” ( ou não, quem sabe?)  É melhor esquecermos...

 

Paulo:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que a net confirmou o que eu te disse baseando-me em insights e um pouquinho de experiência

Mesmo sabendo que há mais além do horizonte, se você se sente feliz neste pic mundo, então o seja. Isto não te é totalmente ruim. Só te digo uma coisa (de novo): o mundo é mais que UNO. E pra concluir.. penso que arduino não é c puro.  Seria tipo um c de médio nível com tudo 1/2 mastigado, parecido com ccs (que também não considero como c). Mas isso não é importante pro seu momento.

 

E por gentileza considere isso...

O que nos une é maior do que nos separa

Sucessos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Isadora Ferraz

 

Minha dileta colega!

 

Não fique chateada por eu confiar mais no fabricante do pic do que em você. Eu considero todas as opiniões, mas como critério para desempate, uso as informações originais. Isso não quer dizer que eu ignoro sua experiência  em eletrônica e/ou sua capacidade de raciocínio. Se o Papa utilizasse seus (da Isidora) fortes argumentos para me explicar que eu não posso usar IF como instrução, eu ainda assim confirmaria com a microchip (não com a net).

 

No fundo, no fundo, eu gostaria de ser inteligente o suficiente para ser perito em todos os microcontroladores, mas o "grosso" da civilização (que reside na zona intermediária de inteligência) me segregaria assim como segrega os deficientes mentais. E todos nós precisamos nos integrar à sociedade, senão ficaremos sozinhos. Focando num único hardware, posso ser mais produtivo pois não gasto energia e neurônios para aprender a fazer com um atmega (ou outro qualquer) o que eu já faço com o PIC (com um pé nas costas, modestamente). Evidentemente, como tudo na vida, quando um pic não puder mais satisfazer minhas necessidades, migrarei para outro uC.

 

Com isso sobra mais neurônios para eu refletir sobre tudo mais que aguça a minha interminável curiosidade.

 

Paulo:)

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Isadora Ferraz disse:

Só te digo uma coisa (de novo): o mundo é mais que UNO

 

Sim, tem razão , ainda tem o DUE, tem o Micro, tem o Pró Mini, tem o Mega 2560, tem o MKR 1000, tem o Mega ADK, tem o Leonardo .... ufa , ainda tem mais mas me esqueci porque são menos usados. :oops:

 

Mas por outro lado, lembrei que estamos no Brasil, então trocaria a frase acima para esta :

 

Sim, tem razão, tem Pic16 e Pic18. :lol:   ( coitado de nosso pobre ensino falido... )

 

Ha, esqueci, temos também IOT com os ESP8266 !

 

 

@paulo celio ,

 

Eu tenho um livro sobre o Mikrobasic para Pics parado aqui em casa, se quiser é seu. Só combinar para pegar ele.

 

Mas me permita uma observação :

 

1 hora atrás, paulo celio disse:

Se o Papa utilizasse seus (da Isidora) fortes argumentos para me explicar que eu não posso usar IF como instrução, eu ainda assim confirmaria com a microchip (não com a net).

 

 

Se a @Isadora Ferraz me passar alguma informação, eu vou usar sem verificar, pois é uma das vozes da experiência desde Fórum. 

 

E a Microchip não inventou o C, portanto não está qualificada para se pronunciar em qualquer assunto sobre programação que não seja o Assembler dos seus próprios microcontroladores.

 

Na minha opinião você perdeu uma ótima chance de permanecer em silêncio ao invés de afirmar a sua desconfiança nas informações que passamos aqui.

 

São pessoas como ela e alguns outros que me orgulham de pertencer a esta pequena ( e infelizmente cada vez menor ) confraria de profissionais experientes  que tentam ensinar e ajudar a todos de graça, perdendo nosso tempo que poderia ser bem mais gasto em outras diversões, mesmo que de vez em quando percebamos que não deveríamos ter ajudado..... mas como errar faz parte do ser humano, continuamos aqui, e já fazem muitos anos !

 

Paulo

Editado por aphawk

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Isadora Ferraz

 

 

É esse tipo de coisa que eu tenho tentado evitar a vida inteira... Mas infelizmente até aqui, entre os "iguais" me defronto com tal. Não vou discorrer sobre agressões gratuítas, sou apenas um membro junior, aliás agora nem membro mais. Se você pensa como seu amigo, me perdoe, não te conheço o suficiente para avaliar seu conhecimento.

 

Gostei muito de interagir com você nesses pouco posts.

 

Acho que eu vou sobreviver sem o Clube do Hardware, tenho me virado bem até então.

 

Vida longa e próspera, Isadora!

 

Paulo

adicionado 50 minutos depois

@Isadora Ferraz

Minha cara colega:

 

Acho que eu me precipitei. Continuarei sendo membro do Clube do Hardware e espero continuar contando com sua ajuda (queria condenar uma placa inteira quando era só trocar o componente defeituoso).

Os idealizadores desse site sabiamente previram situações assim e colocaram recursos para que o diálogo racional e o entendimento fossem preservados acima de qualquer complexo psicológico e/ou problema mental.

 

Tem gente que consegue arrumar confusão até nas situações mais improváveis. Eu tenho pena e espero que tal pessoa consiga ajuda.

 

Fico muito chateado pelo fato do seu nome ter sido envolvido num incidente tão pífio, fiz o necessário para que  isso nunca mais aconteça.

 

Agora está tudo bem.

 

Paulo:)

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paulo...

Paulo tem argumentos com sentido... a net ta aí pra homologar nossas opiniões. Ou não

 

Paulo...

Paulo tem argumentos com sentido... estamos aí pra homologar as opiniões da net. Ou não

 

7 horas atrás, paulo celio disse:

Agora está tudo bem.

Então, nós 5 estamos bem. paulo,paulo,net,forum e..eu

kk.

bj´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

@paulo celio ,

 

Pois é, aqui prevalece a verdadeira Democracia. Ninguém é obrigado a nada que não seja respeitar as regras do Fórum, e claro, da boa educação entre os membros.

 

Existe inclusive a possibilidade de envio de mensagem pessoal, para que outros não vejam uma determinada conversa, mas sempre evitamos pois não agrega nada ao Fórum em termos de divulgação de conhecimento.

 

A nível particular, se você se considera agredido por mim, por eu ter feito uma observação sobre sua enorme desconfiança  no nível técnico do pessoal mais antigo e prestativo daqui do Fórum, não posso fazer nada pois o seu post é evidentemente claríssimo como a luz do Sol. Mas você pode fazer uma reclamação formal aos moderadores se quiser.

 

Se você não avaliou o conhecimento da @Isadora Ferraz, antes de ter replicado o post dela, não deveria ter posto dúvidas sem conhecer melhor o trabalho dela ao longo dos anos. Isto é o que eu não aceitei, pois eu conheço esse trabalho e a sua boa vontade em ajudar com o seu enorme conhecimento técnico e prático.

 

Uma das regras da boa convivência é sempre conhecer melhor o trabalho de quem se dispõe a te ajudar, antes de colocar em xeque o conhecimento dessa pessoa.

 

Mas como você mesmo já pediu para que ela lhe perdoe, então por mim este assunto está resolvido.

 

O livro continua à sua disposição se ainda quiser.

 

Paulo

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×