collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


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


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


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]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: sfr05  (Lida 11897 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