Go Down

Topic: tone error with Software Version arduino-1.5.1r2 (Drduino Due) (Read 880 times) previous topic - next topic

Zendue

I'm trying to compine toneMelody.ino (comes with the standard softare download as an example).

I get the following errors:

"toneMelody.ino: In function 'void setup()':
toneMelody:36: error: 'tone' was not declared in this scope
toneMelody:43: error: 'noTone' was not declared in this scope"

Any thoughts on how to fix this is appreciated.

Zendue

#1
Dec 28, 2012, 01:51 am Last Edit: Dec 28, 2012, 03:47 am by Coding Badly Reason: 1
The code is below:

Code: [Select]
/*
  Melody

Plays a melody

circuit:
* 8-ohm speaker on digital pin 8

created 21 Jan 2010
modified 30 Aug 2011
by Tom Igoe

This example code is in the public domain.

http://arduino.cc/en/Tutorial/Tone

*/
#include "pitches.h"

// notes in the melody:
int melody[] = {
  NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};

// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
  4, 8, 8, 4,4,4,4,4 };

void setup() {
  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < 8; thisNote++) {

    // to calculate the note duration, take one second
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDurations[thisNote];
    tone(8, melody[thisNote],noteDuration);

    // to distinguish the notes, set a minimum time between them.
    // the note's duration + 30% seems to work well:
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    // stop the tone playing:
    noTone(8);
  }
}

void loop() {
  // no need to repeat the melody.
}


Moderator edit: [code] [/code] tags added.

PaulS


Zendue

I'm new to this, but I would think that the tone function would be part of the core library.

I added the following at the top of the file:

#include "tone.h"

I have also included "#include "tone.cpp", but that did not work at all.

I have copied the "tone.cpp" file everywhere I can think of.


PaulS

Quote
I'm new to this, but I would think that the tone function would be part of the core library.

It is, but you still have to include the header file for the library.

Quote
I added the following at the top of the file:

#include "tone.h"

I have also included "#include "tone.cpp", but that did not work at all.

I have copied the "tone.cpp" file everywhere I can think of.

Now that you have f**ked up your installation of 1.5.1r2, you get to delete it and reinstall.

Quit moving tone.cpp around. Core library files are included using
Code: [Select]
#include <tone.h>

Zendue

I tried reinstalling the software and running it (with and without the callout to tone).

If I change the board to the the Arduino Uno the program compiles fine.

I looked at the Tone.cpp using a text editor.  I just started to try to understand it.  It has if statements for (__AVR_ATmega8__) or for (__AVR_ATmega1280__)

not for the Atmel SAM3X8E ARM Cortex-M3 CPU.

I'm thinking code needs to be added to Tone.cpp so that it will work with the Arduino Due.

PaulS

Quote
I'm thinking code needs to be added to Tone.cpp so that it will work with the Arduino Due.

That may well be the case, though adding it to Tone.h seems more likely. I don't see how moving Tone.cpp is going to have any affect on how it works, though.

Go Up