1-
2- #include < FastSPI_LED2.h>
1+ #include < AslFastPin.h>
32
43const char *getPort (void *portPtr) {
54#ifdef PORTA
6- if (portPtr == (void *)&PORTA) { return " PORTA" ; }
5+ if (portPtr == (void *)&PORTA) { return " PORTA" ; }
76#endif
87#ifdef PORTB
9- if (portPtr == (void *)&PORTB) { return " PORTB" ; }
8+ if (portPtr == (void *)&PORTB) { return " PORTB" ; }
109#endif
1110#ifdef PORTC
12- if (portPtr == (void *)&PORTC) { return " PORTC" ; }
11+ if (portPtr == (void *)&PORTC) { return " PORTC" ; }
1312#endif
1413#ifdef PORTD
15- if (portPtr == (void *)&PORTD) { return " PORTD" ; }
14+ if (portPtr == (void *)&PORTD) { return " PORTD" ; }
1615#endif
1716#ifdef PORTE
18- if (portPtr == (void *)&PORTE) { return " PORTE" ; }
17+ if (portPtr == (void *)&PORTE) { return " PORTE" ; }
1918#endif
2019#ifdef PORTF
21- if (portPtr == (void *)&PORTF) { return " PORTF" ; }
20+ if (portPtr == (void *)&PORTF) { return " PORTF" ; }
2221#endif
2322#ifdef PORTG
24- if (portPtr == (void *)&PORTG) { return " PORTG" ; }
23+ if (portPtr == (void *)&PORTG) { return " PORTG" ; }
2524#endif
2625#ifdef PORTH
27- if (portPtr == (void *)&PORTH) { return " PORTH" ; }
26+ if (portPtr == (void *)&PORTH) { return " PORTH" ; }
2827#endif
2928#ifdef PORTI
30- if (portPtr == (void *)&PORTI) { return " PORTI" ; }
29+ if (portPtr == (void *)&PORTI) { return " PORTI" ; }
3130#endif
3231#ifdef PORTJ
33- if (portPtr == (void *)&PORTJ) { return " PORTJ" ; }
32+ if (portPtr == (void *)&PORTJ) { return " PORTJ" ; }
3433#endif
3534#ifdef PORTK
36- if (portPtr == (void *)&PORTK) { return " PORTK" ; }
35+ if (portPtr == (void *)&PORTK) { return " PORTK" ; }
3736#endif
3837#ifdef PORTL
39- if (portPtr == (void *)&PORTL) { return " PORTL" ; }
38+ if (portPtr == (void *)&PORTL) { return " PORTL" ; }
4039#endif
4140#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" ; }
4342#endif
4443#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" ; }
4645#endif
4746#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" ; }
4948#endif
5049#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" ; }
5251#endif
5352#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" ; }
5554#endif
5655#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" ; }
5857#endif
5958#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" ; }
6160#endif
6261#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" ; }
6463#endif
6564#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" ; }
6766#endif
6867 return " unknown" ;
6968}
7069
71- template <uint8_t PIN> void CheckPin ()
72- {
70+ template <uint8_t PIN>
71+ void CheckPin () {
72+ using namespace asl ;
73+
7374 CheckPin<PIN - 1 >();
7475
7576 RwReg *systemThinksPortIs = portOutputRegister (digitalPinToPort (PIN));
7677 RwReg systemThinksMaskIs = digitalPinToBitMask (PIN);
77-
78+
7879 Serial.print (" Pin " ); Serial.print (PIN); Serial.print (" : Port " );
79-
80- if (systemThinksPortIs == FastPin<PIN>::port ()) {
80+
81+ if (systemThinksPortIs == FastPin<PIN>::port ()) {
8182 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 " );
8487 Serial.print (getPort ((void *)systemThinksPortIs));
8588 Serial.print (" & mask " );
8689 }
8790
88- if (systemThinksMaskIs == FastPin<PIN>::mask ()) {
91+ if (systemThinksMaskIs == FastPin<PIN>::mask ()) {
8992 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);
9298 }
93- }
99+ }
94100
95- template <> void CheckPin<-1 > () {}
101+ template <>
102+ void CheckPin<-1 >() {}
96103
97- void setup () {
98- Serial.begin (38400 );
99- Serial.println (" resetting!" );
104+ void setup () {
105+ Serial.begin (38400 );
106+ Serial.println (" resetting!" );
100107}
101108
102- void loop () {
109+ void loop () {
103110 CheckPin<MAX_PIN>();
104111 delay (10000 );
105- }
112+ }
0 commit comments