Pages: [1]   Go Down
Author Topic: Libreria Morse Arduino  (Read 741 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti ragazzi,
ho un problema semplice ma non riesco a capire l'errore.
Voglio creare librerie esterne e ho provato ad utilizzare il codice che Arduino mette e disposizione, ovvero il codice morse:
http://arduino.cc/en/Hacking/LibraryTutorial

Ho seguito attentamente la guida ma ricevo i seguenti errori.
...libraries\Morse\Morse.cpp: In constructor 'Morse::Morse(int)':
...libraries\Morse\Morse.cpp:6: error: 'OUTPUT' was not declared in this scope
...libraries\Morse\Morse.cpp:6: error: 'pinMode' was not declared in this scope
...libraries\Morse\Morse.cpp:7: error: invalid conversion from 'int*' to 'int'
...libraries\Morse\Morse.cpp: In member function 'void Morse::punto()':
...libraries\Morse\Morse.cpp:12: error: 'HIGH' was not declared in this scope
...libraries\Morse\Morse.cpp:12: error: 'digitalWrite' was not declared in this scope
...libraries\Morse\Morse.cpp:13: error: 'delay' was not declared in this scope
...libraries\Morse\Morse.cpp:14: error: 'LOW' was not declared in this scope
...libraries\Morse\Morse.cpp: In member function 'void Morse::linea()':
...libraries\Morse\Morse.cpp:20: error: 'HIGH' was not declared in this scope
...libraries\Morse\Morse.cpp:20: error: 'digitalWrite' was not declared in this scope
...libraries\Morse\Morse.cpp:21: error: 'delay' was not declared in this scope
...libraries\Morse\Morse.cpp:22: error: 'LOW' was not declared in this scope

IDE arduino, 1.0.5
Non posto il codice perchè è identico a quello scritto nella guida.

Grazie per l'aiuto.
Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 115
Posts: 7254
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E' un errore non postare il codice inserto nell'Arduino(non quello preso da internet ma quello effettivamente copiato, modificato e caricato) perché ci possono essere sempre delle piccole differenze, anche per un errato copia incolla .

Se hai scaricato il file Morse.zip: nel file Morse.h e Morse.cpp sostituisci #include "WProgram.h" con #include "Arduino.h" e salva la modifica.
« Last Edit: July 14, 2013, 05:48:25 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 1
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, posto il codice.

Morse.h
Code:
#ifndef Morse_h
#define Morse_h
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

class Morse
{
      public:
             Morse(int pin);
             void punto();
             void linea();
      private:
              int _pin;
};

#endif

Morse.cpp
Code:
#include "Morse.h"
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

Morse::Morse(int pin)
{
                 pinMode(pin, OUTPUT);
                 _pin = pin;
}

void Morse::punto()
{
     digitalWrite(_pin, HIGH);
     delay(250);
     digitalWrite(_pin, LOW);
     delay(250);
}

void Morse::linea()
{
     digitalWrite(_pin, HIGH);
     delay(1000);
     digitalWrite(_pin, LOW);
     delay(250);
}

Arduino
Code:
#include <Morse.h>
Morse morse(13);

void setup()
{
  //nulla  
}

void loop()
{
  morse.punto();
  morse.punto();
  morse.linea();
  morse.linea();
  delay(2000);
}

I file .h e .cpp si trovano nelle directory arduino/libraries/Morse
il file arduino si trova in un altra directory arduino/esempi

Ho provato modificando l'include ma nulla...
« Last Edit: July 14, 2013, 05:55:34 am by constructor84 » Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 115
Posts: 7254
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
_pin=&pin;
cambialo in
Code:
_pin= pin;

Non ti dovrebbe più dare questi errori:
Quote
...libraries\Morse\Morse.cpp:6: error: 'OUTPUT' was not declared in this scope
...libraries\Morse\Morse.cpp:6: error: 'pinMode' was not declared in this scope

Pubblica gli errori che ricevi, se sono diversi dai precedenti.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 1
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si, ho sbagliato io a scrivere, ho modificato subito il post, ma gli errori rimangono... purtroppo...
Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 115
Posts: 7254
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dopo le modifiche hai chiuso e riavviato l'IDE?

EDIT: a me l'originale (morse.zip) con la semplice modifica di WProgram.h in Arduino.h su IDE 1.0.5 Win7 compila
Quote
Dimensione del file binario dello sketch: 1.306 bytes (su un massimo di 32.256 bytes)

Prova a ripartire dall'originale, modifica gli include e compila.
Poi pensi alla traduzione in italiano del codice.
« Last Edit: July 14, 2013, 06:05:26 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 87
Posts: 5049
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A me non compilava prendendo i tuoi pezzi perchè nello sketch
Code:
#include <Morse.h>

M maiuscola e la libreria è in file scritti in minuscolo (!?!?!)

Con
Code:
#include <morse.h>
lo sketch mi compila
Logged

my name is IGOR, not AIGOR

Offline Offline
Newbie
*
Karma: 1
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho importato la libreria da "Sketch > Importa libreria" e in automatico mette #include <Morse.h>
tra l'altro ho provato a mettere con "m" ma nulla, riporta i seguenti errori.

error: 'Morse' does not name a type
In function 'void loop()':
error: 'morse' was not declared in this scope
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bene... :-D Errore mio, perdonatemi... Infatti l'errore era legato alla mancata lettura della libreria... Non usando Arduino da tempo mi sono dimenticato che avevo cambiato directory e quindi i file erano inseriti nella directory sbagliata.

Grazie per l'aiuto a tutti... ;-)
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 87
Posts: 5049
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti allego file compresso (rar) con tutta la libreria e lo sketch sotto esempi nella libreria stessa.
Questo mi compila

* morse.rar (0.89 KB - downloaded 11 times.)
Logged

my name is IGOR, not AIGOR

Pages: [1]   Go Up
Jump to: