2 * This file is part of Cleanflight and Betaflight.
4 * Cleanflight and Betaflight are free software. You can redistribute
5 * this software and/or modify this software under the terms of the
6 * GNU General Public License as published by the Free Software
7 * Foundation, either version 3 of the License, or (at your option)
10 * Cleanflight and Betaflight are distributed in the hope that they
11 * will be useful, but WITHOUT ANY WARRANTY; without even the implied
12 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 * See the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this software.
18 * If not, see <http://www.gnu.org/licenses/>.
25 #include "drivers/io.h"
26 #include "drivers/io_impl.h"
28 typedef struct dbgPin_s
{
35 dbgPin_t dbgPins
[] = {
36 { .tag
= IO_TAG(NONE
) },
41 for (unsigned i
= 0; i
< ARRAYLEN(dbgPins
); i
++) {
42 dbgPin_t
*dbgPin
= &dbgPins
[i
];
43 IO_t io
= IOGetByTag(dbgPin
->tag
);
47 IOConfigGPIO(io
, IOCFG_OUT_PP
);
48 dbgPin
->gpio
= IO_GPIO(io
);
49 int pinSrc
= IO_GPIO_PinSource(io
);
50 dbgPin
->setBSRR
= (1 << pinSrc
);
51 dbgPin
->resetBSRR
= (1 << (pinSrc
+ 16));
55 void dbgPinHi(int index
)
57 if ((unsigned)index
>= ARRAYLEN(dbgPins
)) {
61 dbgPin_t
*dbgPin
= &dbgPins
[index
];
64 dbgPin
->gpio
->BSRR
= dbgPin
->setBSRR
;
66 dbgPin
->gpio
->BSRRL
= dbgPin
->setBSRR
;
71 void dbgPinLo(int index
)
73 if ((unsigned)index
> ARRAYLEN(dbgPins
)) {
77 dbgPin_t
*dbgPin
= &dbgPins
[index
];
81 dbgPin
->gpio
->BSRR
= dbgPin
->resetBSRR
;
83 dbgPin
->gpio
->BSRRL
= dbgPin
->resetBSRR
;