File tree 1 file changed +8
-4
lines changed 1 file changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -82,19 +82,23 @@ void digitalWrite( uint32_t ulPin, uint32_t ulVal )
82
82
return ;
83
83
}
84
84
85
- if ( (PORT -> Group [g_APinDescription [ulPin ].ulPort ].DIRSET .reg & (1ul << g_APinDescription [ulPin ].ulPin )) == 0 ) {
85
+ EPortType port = g_APinDescription [ulPin ].ulPort ;
86
+ uint32_t pin = g_APinDescription [ulPin ].ulPin ;
87
+ uint32_t pinMask = (1ul << pin );
88
+
89
+ if ( (PORT -> Group [port ].DIRSET .reg & pinMask ) == 0 ) {
86
90
// the pin is not an output, disable pull-up if val is LOW, otherwise enable pull-up
87
- PORT -> Group [g_APinDescription [ ulPin ]. ulPort ]. PINCFG [g_APinDescription [ ulPin ]. ulPin ].bit .PULLEN = (ulVal != LOW ) ;
91
+ PORT -> Group [port ]. PINCFG [pin ].bit .PULLEN = (ulVal != LOW ) ;
88
92
}
89
93
90
94
switch ( ulVal )
91
95
{
92
96
case LOW :
93
- PORT -> Group [g_APinDescription [ ulPin ]. ulPort ]. OUTCLR .reg = ( 1ul << g_APinDescription [ ulPin ]. ulPin ) ;
97
+ PORT -> Group [port ]. OUTCLR .reg = pinMask ;
94
98
break ;
95
99
96
100
default :
97
- PORT -> Group [g_APinDescription [ ulPin ]. ulPort ]. OUTSET .reg = ( 1ul << g_APinDescription [ ulPin ]. ulPin ) ;
101
+ PORT -> Group [port ]. OUTSET .reg = pinMask ;
98
102
break ;
99
103
}
100
104
You can’t perform that action at this time.
0 commit comments