Skip to content

Commit 48d50eb

Browse files
author
James Foster
committed
Add macro for portInputRegister()
1 parent 2c20e0e commit 48d50eb

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

SampleProjects/TestSomething/test/outputRegister.cpp

+17
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,23 @@ unittest(portOutputRegister)
2121
*(ss_pin_reg) |= ss_pin_mask; // clear SS
2222
assertEqual((int) 1, (int) *ss_pin_reg); // verify value
2323
}
24+
25+
unittest(portInputRegister)
26+
{
27+
uint8_t ss_pin = 12;
28+
uint8_t ss_port = digitalPinToPort(ss_pin);
29+
assertEqual(12, ss_port);
30+
uint8_t *ss_pin_reg = portInputRegister(ss_port);
31+
assertEqual(GODMODE()->pMmapPort(ss_port), ss_pin_reg);
32+
uint8_t ss_pin_mask = digitalPinToBitMask(ss_pin);
33+
assertEqual(1, ss_pin_mask);
34+
35+
assertEqual((int) 1, (int) *ss_pin_reg); // verify initial value
36+
*(ss_pin_reg) &= ~ss_pin_mask; // set SS
37+
assertEqual((int) 0, (int) *ss_pin_reg); // verify value
38+
*(ss_pin_reg) |= ss_pin_mask; // clear SS
39+
assertEqual((int) 1, (int) *ss_pin_reg); // verify value
40+
}
2441
#endif
2542

2643
unittest_main()

cpp/arduino/Godmode.h

+1
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ inline void noTone(uint8_t _pin) {}
182182
#if defined(__AVR__)
183183
#define digitalPinToBitMask(pin) (1)
184184
#define digitalPinToPort(pin) (pin)
185+
#define portInputRegister(port) (GODMODE()->pMmapPort(port))
185186
#define portOutputRegister(port) (GODMODE()->pMmapPort(port))
186187
#else
187188
// we don't (yet) support other boards

0 commit comments

Comments
 (0)