Details
At frist i was going to open the question on the Programming Questions topic, but I decided to test some other boards with the same code and realized that the problem was with the board I deloped.
I'm praticing hardware devlopment and I've build a SAMD51 board to run with arduino and I've already tested all the pins, serial comunication, I2C, SPI, but when I tried the code that I show latter on this topic, I find this strange error.
I've created a class that uses a function for debugging with some marks, so I've a better understanding what are debug messages and what isn't.
However, EVERYTHING stops working after I use myClass.begin()
that just prints the messages written on the begin method and than looks like the code gets stuck somewhere before starting the loop.
02:33:04.591 -> begin:Entry
02:33:04.591 -> [ML] I'm Alive!!!
02:33:04.591 -> begin:Exit
Whereas if I comment the myClass.begin()
it works...
Do any of you have any ideas on where should I start looking for to solve this?
Board Tests
- Working
- Arduino Due
- SparkFun ThingPlus
- Not working
- my SAMD51 board
Code
.ino
With this sketch, i can not see "Random Stuff" on my Serial Console. But it works if I remove the MC.begin();
.
#include "myLibrary_test.h"
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB
}
pinMode(LED_BUILTIN, OUTPUT);
MC.begin();
Serial.println(F("End of Setup"));
}
void loop() {
Serial.println("Random Stuff");
digitalWrite(LED_BUILTIN, HIGH);
delay(300);
digitalWrite(LED_BUILTIN, LOW);
delay(300);
}
myLibrary_test.h
#ifndef _MYCLASS_H_
#define _MYCLASS_H_
#include <Arduino.h>
// General defines
#define MYLIB_PRINT Serial
#define DEBUG_MYLIB 1
#define DEBUG1_MYLIB_PRINT(str1) { MYLIB_PRINT.print(F("[ML] ")); MYLIB_PRINT.print(str1); }
#define DEBUG1_MYLIB_PRINTLN(str1) { MYLIB_PRINT.print(F("[ML] ")); MYLIB_PRINT.println(str1); }
class MyClass {
public:
bool begin(bool debug = false);
void printBanner() {
DEBUG1_MYLIB_PRINTLN(F("I'm Alive!!!"));
}
};
extern MyClass
MC;
#endif
myLibrary_test.cpp
#include <myLibrary_test.h>
bool MyClass::begin(bool debug)
{
Serial.println(F("begin:Entry"));
printBanner();
Serial.println(F("begin:Exit"));
}
MyClass MC;