|
Post by drolli on May 20, 2017 9:36:53 GMT
Hi,
Can the tone () function be affected by something? In an empty project, tone() and notone() works perfectly. Only in my lawnmower project the shieldbuddy hangs after tone() function and the red LED is permanently on.
Thank you Reiner
|
|
|
Post by Admin on May 20, 2017 12:14:14 GMT
The tone function does not use interrupts so it should never upset anything. If the red led come on then this means that something is causing the cpu to reset or the power has dropped. Is the tone pin connected to something that could cause this?
|
|
|
Post by drolli on May 20, 2017 14:04:03 GMT
Hi, I have connect the shieldbuddy only to USB. Without anything else...
Bye Reiner
|
|
|
Post by drolli on May 20, 2017 19:15:29 GMT
Hi, I could isolate the problem. If I use "UseCustomPwmFreq(5000);" then the effect occurs. If I comment out this line it works. However in my mower project I comment out this line an it doesn´t work. Something else have the same effect... Once again very strange /*** Don't worry, the normal Arduino setup() and loop() are below this block! ***/
/* LMU uninitialised data */ StartOfUninitialised_LMURam_Variables /* Put your LMU RAM fast access variables that have no initial values here e.g. uint32 LMU_var; */ EndOfUninitialised_LMURam_Variables
/* LMU uninitialised data */ StartOfInitialised_LMURam_Variables /* Put your LMU RAM fast access variables that have an initial value here e.g. uint32 LMU_var_init = 1; */ EndOfInitialised_LMURam_Variables
/* If you do not care where variables end up, declare them here! */
#include "tone.h"
/*** Core 0 ***/
void setup() {
useCustomPwmFreq(5000); SerialASC.begin(57600); delay(1000); }
void loop() { // put your main code for core 0 here, to run repeatedly: tone(0, 440, 500); delay(1000); }
/*** Core 1 ***/ /* CPU1 Uninitialised Data */ StartOfUninitialised_CPU1_Variables /* Put your CPU1 fast access variables that have no initial values here e.g. uint32 CPU1_var; */ EndOfUninitialised_CPU1_Variables /* CPU1 Initialised Data */ StartOfInitialised_CPU1_Variables /* Put your CPU1 fast access variables that have an initial value here e.g. uint32 CPU1_var_init = 1; */ EndOfInitialised_CPU1_Variables
void setup1() {
}
void loop1() { }
/*** Core 2 ***/ /* CPU2 Uninitialised Data */ StartOfUninitialised_CPU2_Variables /* Put your CPU2 fast access variables that have no initial values here e.g. uint32 CPU2_var; */ EndOfUninitialised_CPU2_Variables /* CPU2 Initialised Data */ StartOfInitialised_CPU2_Variables /* Put your CPU2 fast access variables that have an initial value here e.g. uint32 CPU2_var_init = 1; */ EndOfInitialised_CPU2_Variables
void setup2() { // put your setup code for core 2 here, to run once: }
void loop2() { // put your main code for core 2 here, to run repeatedly: }
Bye Reiner
|
|
|
Post by Admin on May 20, 2017 19:40:00 GMT
Will check this!
|
|
|
Post by Admin on May 22, 2017 8:12:32 GMT
You are right, there is something strange going on when the tone() is used with useCustomPwmFreq(). We will try to fix this today and issue a new version.
|
|
|
Post by Admin on May 22, 2017 10:18:12 GMT
|
|
|
Post by drolli on May 22, 2017 18:17:46 GMT
Hello,
the test program now works. But in my lawnmower project it is still the same problem. It seems to be something else. I will try to localize it further.
Bye Reiner
|
|
|
Post by drolli on May 23, 2017 15:50:10 GMT
Hi,
unfortunately, I could not determine what the cause is, yet. However it seems, that a reset is triggered once. The red LED blinks short. Then the setup will re-run. Then it hangs at the same place as the first time. This time the red LED is permanently on.
Bye Reiner
|
|
|
Post by drolli on May 23, 2017 18:22:46 GMT
Hi,
now I found it! If I do any "analogWrite(Pin, Value)" anywhere in the code, the tone() function resets the Shieldbuddy. Now it's your turn :-)
Thanks a lot Reiner
|
|
|
Post by Admin on May 23, 2017 21:10:03 GMT
That's strange as this was a specific test case we ran. I will check again!
|
|
|
Post by Admin on May 24, 2017 8:42:10 GMT
Please try the attached sketch. This works OK for me using the latest ShieldBuddy add-in.
sketch_may24a.ino (1.85 KB)
The only thing I can think of is that the pins you are using are causing something to switch on that is pulling down the 5V. Please move the jumper next to th ejack socket and try to use an external 6V - 9V DC supply.
|
|
|
Post by drolli on May 24, 2017 10:05:59 GMT
Hi, thank you for your response. Please try to switch the lines...
tone(0, 440, 500); tone(1, 440, 500); analogWrite(2,128); analogWrite(3,128); to
analogWrite(2,128); analogWrite(3,128); tone(0, 440, 500); tone(1, 440, 500);
I will try it this afternoon. Bye Reiner
|
|
|
Post by Admin on May 24, 2017 10:56:29 GMT
OK, it is now fixed. The tone() and analogWrite() functions share the GTM and were conflicting. Please download the latest version!
|
|
|
Post by drolli on May 24, 2017 19:07:49 GMT
Now, it works in my mower project too.
Thank you Reiner
|
|