collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[22 de Abril de 2024, 14:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]

Autor Tópico: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]  (Lida 116527 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Introdução ao avr-gcc usando o AvrStudio [terceira parte lançada]
« Responder #60 em: 05 de Outubro de 2010, 20:03 »
Isto de escrever depois de estudar análise não dá com nada, e devia ter lido o texto todo com olhos de ver antes de o postar, estava a fazer outras coisas ao mesmo tempo e fiquei com o |= na cabeça quando queria dizer &=, vou já corrigir.
Obrigado pelo aviso.
Sim, quanto ao delay é verdade, iria referir isso noutro tutorial, mas existem vários métodos para dar a volta a isso.
Penso que já está tudo corrigido, se encontrarem mais algum erro digam  ;)
« Última modificação: 05 de Outubro de 2010, 20:08 por senso »
Avr fanboy

Offline Cynary

  • Mini Robot
  • *
  • Mensagens: 182
Re: Introdução ao avr-gcc usando o AvrStudio [terceira parte lançada]
« Responder #61 em: 05 de Outubro de 2010, 20:25 »
Isto de escrever depois de estudar análise não dá com nada, e devia ter lido o texto todo com olhos de ver antes de o postar, estava a fazer outras coisas ao mesmo tempo e fiquei com o |= na cabeça quando queria dizer &=, vou já corrigir.
Obrigado pelo aviso.
Sim, quanto ao delay é verdade, iria referir isso noutro tutorial, mas existem vários métodos para dar a volta a isso.
Penso que já está tudo corrigido, se encontrarem mais algum erro digam  ;)

Agora já está melhor :P
Continuas a fazer um pequeno erro com o |= no entanto ...
Quando fazes exemplo deste tipo:

Citar
DDRD |= 0b00000000;   //Configura todos os pinos do porto D como entradas

Pode ou não configurar como entradas ... esse pedaço de código não faz absolutamente nada, visto que os que fossem saídas, continuariam saídas (1|0 = 1), e os que fossem entradas, continuariam entradas (0|0 = 0).

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Introdução ao avr-gcc usando o AvrStudio [terceira parte lançada]
« Responder #62 em: 05 de Outubro de 2010, 20:28 »
Pois, eu só olhei para as linhas que disseste, tenho que ir ler tudo, vamos ver se á terceira é de vez
Como tutorial de iniciação acho que é mais correcto usar o = e não o |= e o &= nos exemplos porque estamos a referir-nos a todo o porto, e não a um bit ou outro, portanto acho que como está até está mais legivel para os iniciantes, acho é que tenho que ir alterar parte do texto  :-\
« Última modificação: 05 de Outubro de 2010, 20:33 por senso »
Avr fanboy

Offline Cynary

  • Mini Robot
  • *
  • Mensagens: 182
Re: Introdução ao avr-gcc usando o AvrStudio [terceira parte lançada]
« Responder #63 em: 05 de Outubro de 2010, 20:48 »
Pois, eu só olhei para as linhas que disseste, tenho que ir ler tudo, vamos ver se á terceira é de vez
Como tutorial de iniciação acho que é mais correcto usar o = e não o |= e o &= nos exemplos porque estamos a referir-nos a todo o porto, e não a um bit ou outro, portanto acho que como está até está mais legivel para os iniciantes, acho é que tenho que ir alterar parte do texto  :-\

Pelos comentários e explicações que fizeste, o = encaixa perfeitamente lá, e funciona para quem não percebe bem as operações bit-wise. A minha crítica foi que em certos locais onde o = é mais apropriado, tinhas o |=, o que, pelo que li agora, parece estar já corrigido :)

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Sim, ás vezes o vicio/hábito acaba por complicar demasiado o que se quer simples.
Acho que agora ficou no ponto.
Talvez um tutorial sobre operadores lógicos fique bem depois disto.
Avr fanboy

Offline Cynary

  • Mini Robot
  • *
  • Mensagens: 182
Sim, ás vezes o vicio/hábito acaba por complicar demasiado o que se quer simples.
Acho que agora ficou no ponto.
Talvez um tutorial sobre operadores lógicos fique bem depois disto.

Pois, convém para evitar dúvidas nisso, visto serem muito usados ao mexer-se nos registers do AVR.
Se quiseres usar alguma coisa do meu, estás à vontade ;)

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Escreves-te sobre os operadores lógicos, nem reparei, tenho de ir dar uma olhadela.
Avr fanboy

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Já está no forno um sobre operadores logicos e outro sobre o conversor analógico digital, e funções para o mesmo para simplificar o seu uso.
Então pessoal que quer mudar para c, como é que vai isso?
Havia alguns interessados, mas parece que o interesse morreu :/
Avr fanboy

Offline Capeleiro

  • Mini Robot
  • *
  • Mensagens: 127
Então pessoal que quer mudar para c, como é que vai isso?
Havia alguns interessados, mas parece que o interesse morreu :/
Bom, interessados ainda há pelo menos um!
Parabéns ao senso pelos tutoriais (e já agora também ao Cynary), porque eles ajudam a deixar de estar tão dependente do Arduino, ganhar bases em C, e sabendo o básico depois é muito mais fácil aprender o resto por nossa conta.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Então, diz ai coisas que gostavas de aprender a fazer usando C?
Tenta uns projectos simples, como enviar uma mensagem em código morse usando um led, e passas a mensagem por serial usando o terminal, ou uma mini calculadora que dizes que operação queres fazer e passas os numeros ao avr e depois ele manda-te o resultado, para te ambientares ao AvrStudio, apesar de ainda estar aqui pouca informação já podes fazer algumas coisas para conheceres melhor o compilador do Avr.
Avr fanboy

Offline Capeleiro

  • Mini Robot
  • *
  • Mensagens: 127
O meu próximo projecto vai ser um robot para a Busca e Salvamento, no Festival de Robótica 2011.
Já fiz um o ano passado, mas este ano o desafio vai ser usar apenas funções criadas por mim em C.
A parte mais difícil penso que serão os Servos, porque vou precisar de controlá-los em qualquer pin e não estar limitado só aos que têm PWM, vamos lá ver se consigo, ou se vou ter de usar a biblioteca Arduino (vou tentar não usar!).

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Aconselho-te talvez a usar um micro-controlador separado só para os servos, porque servos sem ser com pwm tem de ser com uma emulação de pwm feita em software e quanto menos coisas estiverem a correr e mais pequeno e limpo for o código para os servos melhores, porque a biblioteca servo do arduino tem problemas pois tem interrupções a disparar por causa do millis() e tem mesmo falhas a nivel de código que causam jitter nos servos, e falhas na posição dos mesmos.
Avr fanboy

Offline Capeleiro

  • Mini Robot
  • *
  • Mensagens: 127
Nesse caso até se torna mais fácil, talvez...
Uso um AVR "dos pequenos", basta ter uns três PWMs pelo menos e se tiver UART facilita.
E pôr em prática o que aprendi em C  ;D

Offline Cynary

  • Mini Robot
  • *
  • Mensagens: 182
O meu próximo projecto vai ser um robot para a Busca e Salvamento, no Festival de Robótica 2011.
Já fiz um o ano passado, mas este ano o desafio vai ser usar apenas funções criadas por mim em C.
A parte mais difícil penso que serão os Servos, porque vou precisar de controlá-los em qualquer pin e não estar limitado só aos que têm PWM, vamos lá ver se consigo, ou se vou ter de usar a biblioteca Arduino (vou tentar não usar!).

Esse é o meu projecto para este ano também :D
Vais participar em rescue B? (labirinto, em vez de seguir linha)
No meu, vou usar em princípio três micro-controladores ... um para motores/virar, um para conduzir o robô, e um para um sensor especial secreto hehe (não posso revelar os segredos todos, senão deixo de ser competitivo xD depois da competição ponho aqui em princípio, se funcionar bem).
O condutor e o controlador dos motores, comunicarão por serial ou SPI (se aprender a usar SPI, e for simples o suficiente). O sensor especial ficará como um slave no BUS I²C.

Offline Capeleiro

  • Mini Robot
  • *
  • Mensagens: 127
Vou participar no Rescue A, porque no ano passado já participei neste escalão e aprendi bastante, este ano vou aplicar tudo o que aprendi e o resultado final vai ser melhor, espero  ;D
A minha ideia inicial era usar um ATmega328 para tudo, ligado a 3 multiplexers, o que daria mais 24 entradas extra. Mas agora começo a mudar de ideias e talvez use dois ATtiny2313, um para controlar servos e ao mesmo tempo ler alguns sensores e outro para ler mais uns quantos sensores, e ainda um ATmega328 como "cérebro" a receber todas as leituras e enviar as ordens para os Attiny.