1
-
2
- #include < FastSPI_LED2.h>
1
+ #include < AslFastPin.h>
3
2
4
3
const char *getPort (void *portPtr) {
5
4
#ifdef PORTA
6
- if (portPtr == (void *)&PORTA) { return " PORTA" ; }
5
+ if (portPtr == (void *)&PORTA) { return " PORTA" ; }
7
6
#endif
8
7
#ifdef PORTB
9
- if (portPtr == (void *)&PORTB) { return " PORTB" ; }
8
+ if (portPtr == (void *)&PORTB) { return " PORTB" ; }
10
9
#endif
11
10
#ifdef PORTC
12
- if (portPtr == (void *)&PORTC) { return " PORTC" ; }
11
+ if (portPtr == (void *)&PORTC) { return " PORTC" ; }
13
12
#endif
14
13
#ifdef PORTD
15
- if (portPtr == (void *)&PORTD) { return " PORTD" ; }
14
+ if (portPtr == (void *)&PORTD) { return " PORTD" ; }
16
15
#endif
17
16
#ifdef PORTE
18
- if (portPtr == (void *)&PORTE) { return " PORTE" ; }
17
+ if (portPtr == (void *)&PORTE) { return " PORTE" ; }
19
18
#endif
20
19
#ifdef PORTF
21
- if (portPtr == (void *)&PORTF) { return " PORTF" ; }
20
+ if (portPtr == (void *)&PORTF) { return " PORTF" ; }
22
21
#endif
23
22
#ifdef PORTG
24
- if (portPtr == (void *)&PORTG) { return " PORTG" ; }
23
+ if (portPtr == (void *)&PORTG) { return " PORTG" ; }
25
24
#endif
26
25
#ifdef PORTH
27
- if (portPtr == (void *)&PORTH) { return " PORTH" ; }
26
+ if (portPtr == (void *)&PORTH) { return " PORTH" ; }
28
27
#endif
29
28
#ifdef PORTI
30
- if (portPtr == (void *)&PORTI) { return " PORTI" ; }
29
+ if (portPtr == (void *)&PORTI) { return " PORTI" ; }
31
30
#endif
32
31
#ifdef PORTJ
33
- if (portPtr == (void *)&PORTJ) { return " PORTJ" ; }
32
+ if (portPtr == (void *)&PORTJ) { return " PORTJ" ; }
34
33
#endif
35
34
#ifdef PORTK
36
- if (portPtr == (void *)&PORTK) { return " PORTK" ; }
35
+ if (portPtr == (void *)&PORTK) { return " PORTK" ; }
37
36
#endif
38
37
#ifdef PORTL
39
- if (portPtr == (void *)&PORTL) { return " PORTL" ; }
38
+ if (portPtr == (void *)&PORTL) { return " PORTL" ; }
40
39
#endif
41
40
#ifdef GPIO_A_PDOR
42
- if (portPtr == (void *)&GPIO_A_PDOR) { return " GPIO_A_PDOR" ; }
41
+ if (portPtr == (void *)&GPIO_A_PDOR) { return " GPIO_A_PDOR" ; }
43
42
#endif
44
43
#ifdef GPIO_B_PDOR
45
- if (portPtr == (void *)&GPIO_B_PDOR) { return " GPIO_B_PDOR" ; }
44
+ if (portPtr == (void *)&GPIO_B_PDOR) { return " GPIO_B_PDOR" ; }
46
45
#endif
47
46
#ifdef GPIO_C_PDOR
48
- if (portPtr == (void *)&GPIO_C_PDOR) { return " GPIO_C_PDOR" ; }
47
+ if (portPtr == (void *)&GPIO_C_PDOR) { return " GPIO_C_PDOR" ; }
49
48
#endif
50
49
#ifdef GPIO_D_PDOR
51
- if (portPtr == (void *)&GPIO_D_PDOR) { return " GPIO_D_PDOR" ; }
50
+ if (portPtr == (void *)&GPIO_D_PDOR) { return " GPIO_D_PDOR" ; }
52
51
#endif
53
52
#ifdef GPIO_E_PDOR
54
- if (portPtr == (void *)&GPIO_E_PDOR) { return " GPIO_E_PDOR" ; }
53
+ if (portPtr == (void *)&GPIO_E_PDOR) { return " GPIO_E_PDOR" ; }
55
54
#endif
56
55
#ifdef REG_PIO_A_ODSR
57
- if (portPtr == (void *)®_PIO_A_ODSR) { return " REG_PIO_A_ODSR" ; }
56
+ if (portPtr == (void *)®_PIO_A_ODSR) { return " REG_PIO_A_ODSR" ; }
58
57
#endif
59
58
#ifdef REG_PIO_B_ODSR
60
- if (portPtr == (void *)®_PIO_B_ODSR) { return " REG_PIO_B_ODSR" ; }
59
+ if (portPtr == (void *)®_PIO_B_ODSR) { return " REG_PIO_B_ODSR" ; }
61
60
#endif
62
61
#ifdef REG_PIO_C_ODSR
63
- if (portPtr == (void *)®_PIO_C_ODSR) { return " REG_PIO_C_ODSR" ; }
62
+ if (portPtr == (void *)®_PIO_C_ODSR) { return " REG_PIO_C_ODSR" ; }
64
63
#endif
65
64
#ifdef REG_PIO_D_ODSR
66
- if (portPtr == (void *)®_PIO_D_ODSR) { return " REG_PIO_D_ODSR" ; }
65
+ if (portPtr == (void *)®_PIO_D_ODSR) { return " REG_PIO_D_ODSR" ; }
67
66
#endif
68
67
return " unknown" ;
69
68
}
70
69
71
- template <uint8_t PIN> void CheckPin ()
72
- {
70
+ template <uint8_t PIN>
71
+ void CheckPin () {
72
+ using namespace asl ;
73
+
73
74
CheckPin<PIN - 1 >();
74
75
75
76
RwReg *systemThinksPortIs = portOutputRegister (digitalPinToPort (PIN));
76
77
RwReg systemThinksMaskIs = digitalPinToBitMask (PIN);
77
-
78
+
78
79
Serial.print (" Pin " ); Serial.print (PIN); Serial.print (" : Port " );
79
-
80
- if (systemThinksPortIs == FastPin<PIN>::port ()) {
80
+
81
+ if (systemThinksPortIs == FastPin<PIN>::port ()) {
81
82
Serial.print (" valid & mask " );
82
- } else {
83
- Serial.print (" invalid, is " ); Serial.print (getPort ((void *)FastPin<PIN>::port ())); Serial.print (" should be " );
83
+ } else {
84
+ Serial.print (" invalid, is " );
85
+ Serial.print (getPort ((void *)FastPin<PIN>::port ()));
86
+ Serial.print (" should be " );
84
87
Serial.print (getPort ((void *)systemThinksPortIs));
85
88
Serial.print (" & mask " );
86
89
}
87
90
88
- if (systemThinksMaskIs == FastPin<PIN>::mask ()) {
91
+ if (systemThinksMaskIs == FastPin<PIN>::mask ()) {
89
92
Serial.println (" valid." );
90
- } else {
91
- Serial.print (" invalid, is " ); Serial.print (FastPin<PIN>::mask ()); Serial.print (" should be " ); Serial.println (systemThinksMaskIs);
93
+ } else {
94
+ Serial.print (" invalid, is " );
95
+ Serial.print (FastPin<PIN>::mask ());
96
+ Serial.print (" should be " );
97
+ Serial.println (systemThinksMaskIs);
92
98
}
93
- }
99
+ }
94
100
95
- template <> void CheckPin<-1 > () {}
101
+ template <>
102
+ void CheckPin<-1 >() {}
96
103
97
- void setup () {
98
- Serial.begin (38400 );
99
- Serial.println (" resetting!" );
104
+ void setup () {
105
+ Serial.begin (38400 );
106
+ Serial.println (" resetting!" );
100
107
}
101
108
102
- void loop () {
109
+ void loop () {
103
110
CheckPin<MAX_PIN>();
104
111
delay (10000 );
105
- }
112
+ }
0 commit comments