Skip to content

Commit b9dec74

Browse files
committed
Merge branch 'DevTimer'
2 parents 70a0498 + 84463b5 commit b9dec74

19 files changed

+1086
-745
lines changed

media/calculations.mcdx

190 KB
Binary file not shown.

media/calculations.pdf

70.1 KB
Binary file not shown.

src/ErrorHandler.cpp

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#include "ErrorHandler.h"
2+
#include <Arduino.h>
3+
4+
namespace TeensyStep
5+
{
6+
static Stream* stream;
7+
8+
static void vHandler(int module, int code)
9+
{
10+
const char* mod;
11+
const char* txt;
12+
13+
switch ((errModule)module)
14+
{
15+
case errModule::PIT: //----------------------------------------
16+
mod = "PIT";
17+
switch ((pitErr)code)
18+
{
19+
case pitErr::outOfTimers: txt = "No timer available"; break;
20+
case pitErr::argErr: txt = "BUG, argument error"; break;
21+
case pitErr::notAllocated:txt = "BUG, timer not allocated"; break;
22+
default: txt = "unknown"; break;
23+
}
24+
break;
25+
26+
case errModule::MC: //------------------------------------------
27+
mod = "CTRL";
28+
switch ((mcErr)code)
29+
{
30+
case mcErr::alrdyMoving: txt = "Started while moving"; break;
31+
default: txt = "unknown"; break;
32+
}
33+
break;
34+
35+
default: //------------------------------------------------------
36+
mod = "unknown";
37+
txt = "unknown";
38+
break;
39+
}
40+
stream->printf("ERR M%iC%i: %s (%s)\n", module, code, txt, mod);
41+
42+
while (true)
43+
{
44+
digitalWriteFast(LED_BUILTIN, !digitalReadFast(LED_BUILTIN));
45+
delay(50);
46+
}
47+
}
48+
49+
errCallback_t* verboseHandler(Stream& s)
50+
{
51+
stream = &s;
52+
return vHandler;
53+
}
54+
55+
errCallback_t* ErrorHandler::callback = nullptr;
56+
}

src/ErrorHandler.h

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#pragma once
2+
#include "Stream.h"
3+
4+
namespace TeensyStep
5+
{
6+
using errCallback_t = void(int, int);
7+
8+
enum class errModule;
9+
enum class pitERR;
10+
11+
class ErrorHandler
12+
{
13+
public:
14+
static int error(errModule module, int code)
15+
{
16+
if (callback != nullptr) callback((int)module, code);
17+
return code;
18+
}
19+
static void attachCallback(errCallback_t* cb) { callback = cb; }
20+
21+
protected:
22+
static errCallback_t* callback;
23+
};
24+
25+
extern errCallback_t* verboseHandler(Stream&);
26+
27+
enum class errModule {
28+
PIT = 1,
29+
MC,
30+
RB
31+
};
32+
33+
enum class pitErr {
34+
OK,
35+
argErr,
36+
notAllocated,
37+
outOfTimers,
38+
39+
};
40+
41+
enum class mcErr {
42+
OK,
43+
alrdyMoving,
44+
};
45+
}

0 commit comments

Comments
 (0)