Skip to content

Commit 17d8b2a

Browse files
author
James Foster
committed
Merge branch 'master' into BusIO
2 parents 8826161 + cfd3d21 commit 17d8b2a

File tree

4 files changed

+21
-2
lines changed

4 files changed

+21
-2
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
88
## [Unreleased]
99
### Added
1010
- `arduino_ci_remote.rb` CLI switch `--skip-examples-compilation`
11-
- Add support for `diditalPinToPort()`, `digitalPinToBitMask()`, and `portOutputRegister()`
11+
- Add support for `diditalPinToPort()`, `digitalPinToBitMask()`, `portOutputRegister()`, and `portInputRegister()`
1212
- `CppLibrary.header_files` to find header files
1313
- `LibraryProperties` to read metadata from Arduino libraries
1414
- `CppLibrary.library_properties_path`, `CppLibrary.library_properties?`, `CppLibrary.library_properties` to expose library properties of a Cpp library
@@ -31,6 +31,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
3131
- Don't define `ostream& operator<<(nullptr_t)` if already defined by Apple
3232
- `CppLibrary.in_tests_dir?` no longer produces an error if there is no tests directory
3333
- The definition of the `_SFR_IO8` macro no longer produces errors about rvalues
34+
- Typo in `cpp_library.rb`, misspelling of `aux_libraries`
3435

3536
### Deprecated
3637
- `arduino_ci_remote.rb` CLI switch `--skip-compilation`

SampleProjects/TestSomething/test/outputRegister.cpp

Lines changed: 17 additions & 0 deletions
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

Lines changed: 1 addition & 0 deletions
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

lib/arduino_ci/cpp_library.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ def build_for_test_with_configuration(test_file, aux_libraries, gcc_binary, ci_g
410410

411411
# combine library.properties defs (if existing) with config file.
412412
# TODO: as much as I'd like to rely only on the properties file(s), I think that would prevent testing 1.0-spec libs
413-
full_aux_libraries = arduino_library_dependencies.nil? ? aux_libraries : aux_libaries + arduino_library_dependencies
413+
full_aux_libraries = arduino_library_dependencies.nil? ? aux_libraries : aux_libraries + arduino_library_dependencies
414414
arg_sets << test_args(full_aux_libraries, ci_gcc_config)
415415
arg_sets << cpp_files_libraries(full_aux_libraries).map(&:to_s)
416416
arg_sets << [test_file.to_s]

0 commit comments

Comments
 (0)