collapse

* Posts Recentes

Cerca eléctrica por SerraCabo
[14 de Junho de 2025, 23:26]


Alguém arranja motores? por almamater
[10 de Junho de 2025, 22:34]


Condensador 4.7uF 0603 por brunus
[09 de Junho de 2025, 15:52]


+ LASERs por dropes
[30 de Maio de 2025, 23:11]


Lenovo IdeaPad 3 Não liga por jm_araujo
[07 de Maio de 2025, 19:10]


Identificar Diodo Zenner por filjoa
[01 de Maio de 2025, 23:07]


Meu novo robô por dropes
[18 de Março de 2025, 14:51]


JBL partybox On-The-Go por almamater
[21 de Fevereiro de 2025, 23:32]


Talking Reverse Engineering with an Absolute Legend! por SerraCabo
[13 de Fevereiro de 2025, 09:56]


Motoserra Stihl 120C por brunus
[11 de Fevereiro de 2025, 16:29]

Autor Tópico: sfr05  (Lida 15748 vezes)

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

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: sfr05
« Responder #15 em: 20 de Junho de 2011, 21:17 »
Esse sensor é bastante simples de usar, concerteza que consegues converter esse código PIC para o AVR, não ?

É que ficar à espera de alguém que te dê o trabalho feito, pode demorar tempo, se aparecer.

A internet é grande. De certeza que já alguém usou esse sensor com um AVR.
basta usar o Google.

;)

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: sfr05
« Responder #16 em: 20 de Junho de 2011, 21:25 »
Manda-me o sensor lá para meio de Julho que é quando tenho tempo livre que eu faço-te o código e depois mando o sensor para trás.
Avr fanboy

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: sfr05
« Responder #17 em: 27 de Junho de 2011, 18:24 »
Boas amigos, tentei fazer o codigo do zero, para tal comecei por:

Código: [Seleccione]
#include <stdio.h>
#include <stdlib.h>
#include <avr/io.h>
#include <delay.h>

void startRange(void);
//unsigned int getEcho(void);
void setup(void);

int main(void)
{
setup();

// unsigned int range;

while(1)
{
startRange(); // Send a high on the trigger pin to start a ranging

}
}

void startRange(void)
{
PORTD = 0b00000001; // Send trigger pin high
_delay_us(10);     // Wait 10us...
PORTD = 0b00000000;
_delay_us(10);
}

void setup(void)
{
DDRD = 0x01; // Port D pin 0 ouput all others input
}

se usar um valor tipo 250ms este bocado de codigo funciona na perfeiçao, no entanto com 10 us obtenho no osciloscopio sempre cerca de 3.6ms, sei que deve ter haver com o temporizador interno do atmega, alguem me pode dar uma ajuda a configurar? estes 10 us servem para dar o impulso no trigger do srf05.

cumprimentos

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: sfr05
« Responder #18 em: 27 de Junho de 2011, 19:34 »
Onde é que está o #define F_CPU?
Tens de o definir antes de fazer include do delay.h para ele saber o que fazer, esse código de certeza que te está a dar warning quanto a isso e tu não estás a ligar ao warning..
Avr fanboy

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: sfr05
« Responder #19 em: 28 de Junho de 2011, 15:31 »
defenindo isso ja dara tal como pretendo?

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: sfr05
« Responder #20 em: 29 de Junho de 2011, 21:35 »
defeni tal como sugeriste, no entanto ainda me deu mais warnings assim..

Código: [Seleccione]
#include <stdio.h>
#include <stdlib.h>
#include <avr/io.h>
#define F_CPU 1000000
#include <delay.h>

void startRange(void);
//unsigned int getEcho(void);
void setup(void);

int main(void)
{
setup();

// unsigned int range;

while(1)
{
startRange(); // Send a high on the trigger pin to start a ranging

}
}

void startRange(void)
{
PORTD = 0b00000001; // Send trigger pin high
_delay_us(10);     // Wait 10us...
PORTD = 0b00000000;
_delay_us(10);
}

void setup(void)
{
DDRD = 0x01; // Port D pin 0 ouput all others input
}


tá aí os warnings :


../sonar.c:4:1: warning: "F_CPU" redefined
<command-line>: warning: this is the location of the previous definition
In file included from ../sonar.c:5:
C:\Users\Tiago Silva\Desktop\..\..\..\WinAVR-20090313\avr\include\avr/delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>."
In file included from C:\Users\Tiago Silva\Desktop\..\..\..\WinAVR-20090313\avr\include\avr/delay.h:37,
                 from ../sonar.c:5:
c:/winavr-20090313/lib/gcc/../../avr/include/util/delay.h:90:3: warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: sfr05
« Responder #21 em: 29 de Junho de 2011, 21:40 »
Estás a compilar em -O0 porque o default é -Os ou -O2.
Avr fanboy

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: sfr05
« Responder #22 em: 29 de Junho de 2011, 22:21 »
se o F_CPU estiver na 1º linha o warning desaparece

a localização do delay é <util/delay.h>

não sei se é relevante mas assim os warnings desaparecem

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: sfr05
« Responder #23 em: 29 de Junho de 2011, 22:27 »
Mas esta linha:
Código: [Seleccione]
c:/winavr-20090313/lib/gcc/../../avr/include/util/delay.h:90:3: warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"

Diz claramente que ele desligou as optimizações do compilador e está a compilar em -O0.
Avr fanboy

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: sfr05
« Responder #24 em: 29 de Junho de 2011, 22:28 »
fiz tal como disseram.. defeni na 1ª linha, mudei o nome a livraria, udei para -os, deu 2 warnings


../sonar.c:1:1: warning: "F_CPU" redefined
<command-line>: warning: this is the location of the previous definition

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: sfr05
« Responder #25 em: 29 de Junho de 2011, 22:30 »
Não podes ter duas vezes o F_CPU, se for igual não tem mal, mas se forem diferentes vai dar barraca, pois ele vai assumir o ultimo que leu e esse pode não ser o que estás á espera..
Avr fanboy

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: sfr05
« Responder #26 em: 29 de Junho de 2011, 22:37 »
ja esta sem warnings..

mas o que esta diferente do inicial é apenas a livraria que estava mal defenida, assim ja me vai dar o tempo que pretendo?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: sfr05
« Responder #27 em: 29 de Junho de 2011, 22:40 »
Sim, mais ou menos meia duzia de clocks, mas isso é bastante fiavel.
Avr fanboy

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: sfr05
« Responder #28 em: 29 de Junho de 2011, 22:43 »
ok, amanha ja testo, quanto aos fuses nao sei como resolver isto =/ n estou a conseguir enviar..



Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: sfr05
« Responder #29 em: 29 de Junho de 2011, 22:57 »
Isso é porque de certeza que programas-te os fuses errados.
Avr fanboy