collapse

* Posts Recentes

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]


Emulador NES em ESP32 por dropes
[10 de Abril de 2024, 15:30]


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]


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

Autor Tópico: Dúvida simples  (Lida 3975 vezes)

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

Offline ptrobotics

  • Mini Robot
  • *
  • Mensagens: 133
  • Componentes para Electrónica e Robótica
    • PTRobotics - Componentes para Electrónica e Robótica
Dúvida simples
« em: 06 de Janeiro de 2011, 16:59 »
Olá pessoal,

Não consigo entender isto:

int leddelay(65);

porque é que não é:

int ledelay = 65;

É tão óbvio que não consigo entender dado que ledelay não é uma função da linguagem... ou é?
Cumprimentos
Pedro Silva

PTRobotics - www.ptrobotics.com
Loja de Electrónica e Robótica
Praca do Relógio 15 Loja 3, 2635-457 Rio-de-Mouro, Portugal
E-mail - geral@ptrobotics.com

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Dúvida simples
« Responder #1 em: 06 de Janeiro de 2011, 17:05 »
Isso compila sem erros?
Avr fanboy

Offline ptrobotics

  • Mini Robot
  • *
  • Mensagens: 133
  • Componentes para Electrónica e Robótica
    • PTRobotics - Componentes para Electrónica e Robótica
Re: Dúvida simples
« Responder #2 em: 06 de Janeiro de 2011, 17:12 »
Sem qualquer erro!
Retirei de um livro, é um programa relativamente simple para fazer uns led's deslizantes.
Código completo:

// Project 5 - LED Chase Effect
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // Create array for LED pins
int ledDelay(65); // delay between changes
int direction = 1;
int currentLED = 0;
unsigned long changeTime;

void setup() {
for (int x=0; x<10; x++) { // set all pins to output
pinMode(ledPin(x), OUTPUT); }
changeTime = millis();
}

void loop() {
if ((millis() - changeTime) > ledDelay) { // if it has been ledDelay ms since
last change
changeLED();
changeTime = millis();
}


void changeLED() {
for (int x=0; x<10; x++) { // turn off all LED's
digitalWrite(ledPin(X), LOW);
}
digitalWrite(ledPin[currentLED], HIGH); // turn on the current LED
currentLED += direction; // increment by the direction value
// change direction if we reach the end
if (currentLED == 9) {direction = -1;}
if (currentLED == 0) {direction = 1;}
}
« Última modificação: 06 de Janeiro de 2011, 17:23 por ptrobotics »
Cumprimentos
Pedro Silva

PTRobotics - www.ptrobotics.com
Loja de Electrónica e Robótica
Praca do Relógio 15 Loja 3, 2635-457 Rio-de-Mouro, Portugal
E-mail - geral@ptrobotics.com

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Dúvida simples
« Responder #3 em: 06 de Janeiro de 2011, 17:22 »
Olá pessoal,

Não consigo entender isto:

int leddelay(65);

porque é que não é:

int ledelay = 65;

É tão óbvio que não consigo entender dado que ledelay não é uma função da linguagem... ou é?

Se o int for uma classe pode ter um constructor e então permite que isso seja feito de outra maneira, mas para isso tinhamos que estar a falar de C++. Isso é Arduino?! Se for é provavel que isto aconteça, o melhor é mesmo perguntar no forum do arduino, de certeza que sabem!

Offline ptrobotics

  • Mini Robot
  • *
  • Mensagens: 133
  • Componentes para Electrónica e Robótica
    • PTRobotics - Componentes para Electrónica e Robótica
Re: Dúvida simples
« Responder #4 em: 06 de Janeiro de 2011, 17:25 »
Retirei do livro beginning Arduino. Tenho andado às voltas para conseguir entender esta linha!
Cumprimentos
Pedro Silva

PTRobotics - www.ptrobotics.com
Loja de Electrónica e Robótica
Praca do Relógio 15 Loja 3, 2635-457 Rio-de-Mouro, Portugal
E-mail - geral@ptrobotics.com

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Dúvida simples
« Responder #5 em: 06 de Janeiro de 2011, 17:29 »
Cheira-me que isso dê um warning..
Avr fanboy

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Dúvida simples
« Responder #6 em: 06 de Janeiro de 2011, 17:32 »
Cheira-me que isso dê um warning..

O arduino é feito em c++/c por isso se o int for uma classe é super normal que se faça isso e não tem nada que dar warning. Agora não sei como isso está feiot, isto são só suposições.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Dúvida simples
« Responder #7 em: 06 de Janeiro de 2011, 17:46 »
Mas o arduino por alguma razão ainda desconhecida tem os warnings do compilador desligados, e o int faz parte das coisinhas base do compilador, por outro lado, nada me espanta...
No AvrStudio meter o int leddelay(65); dá este erro:
../USART.c:13: error: expected declaration specifiers or '...' before numeric constant
Avr fanboy

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: Dúvida simples
« Responder #8 em: 06 de Janeiro de 2011, 17:56 »
No AvrStudio meter o int leddelay(65); dá este erro:
../USART.c:13: error: expected declaration specifiers or '...' before numeric constant

Provavelmente, porque estás a compilar em C e não C++ (muda a extensão do ficheiro para .cpp).

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Dúvida simples
« Responder #9 em: 06 de Janeiro de 2011, 18:09 »
Sim, o ficheiro é .c .
Avr fanboy