1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #include "at32f403a_407.h"
- #include "output.h"
- #include "FreeRTOS.h"
- #include "task.h"
- #include <stdio.h>
- out_t outputs[OUTPUT_NUMBER] = {
- {GPIOC, GPIO_PINS_12, 0},
- {GPIOD, GPIO_PINS_2, 0},
- {GPIOE, GPIO_PINS_6, 0},
- {GPIOC, GPIO_PINS_1, 0},
- {GPIOC, GPIO_PINS_11, 0},
- {GPIOD, GPIO_PINS_3, 0},
- {GPIOE, GPIO_PINS_5, 0},
- {GPIOC, GPIO_PINS_2, 0}
- };
- simple_gpio_t load_sens[OUTPUT_NUMBER] = {
- {GPIOD, GPIO_PINS_0},
- {GPIOD, GPIO_PINS_1},
- {GPIOC, GPIO_PINS_13},
- {GPIOC, GPIO_PINS_0},
- {GPIOC, GPIO_PINS_10},
- {GPIOD, GPIO_PINS_4},
- {GPIOE, GPIO_PINS_4},
- {GPIOC, GPIO_PINS_3}
- };
- //
- void out_init(out_t *out)
- {
- gpio_init_type gpio_init_struct;
- // Выход
- if (out->mode == 0)
- {
- gpio_default_para_init(&gpio_init_struct);
-
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- gpio_init_struct.gpio_pins = out->pin;
- gpio_init(out->port, &gpio_init_struct);
- }
- }
- //
- void load_sens_init(simple_gpio_t *sens)
- {
- gpio_init_type gpio_init_struct;
-
- gpio_default_para_init(&gpio_init_struct);
-
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- gpio_init_struct.gpio_pins = sens->pin;
- gpio_init(sens->port, &gpio_init_struct);
- }
- //
- void out_test(void)
- {
- for (int i = 0; i < OUTPUT_NUMBER; i++)
- {
- outputs[i].port->odt ^= outputs[i].pin;
-
- printf("LOAD_1: %u LOAD_2: %u LOAD_3: %u LOAD_4: %u LOAD_5: %u LOAD_6: %u LOAD_7: %u LOAD_8: %u\r\n",
- gpio_input_data_bit_read(load_sens[0].port, load_sens[0].pin),
- gpio_input_data_bit_read(load_sens[1].port, load_sens[1].pin),
- gpio_input_data_bit_read(load_sens[2].port, load_sens[2].pin),
- gpio_input_data_bit_read(load_sens[3].port, load_sens[3].pin),
- gpio_input_data_bit_read(load_sens[4].port, load_sens[4].pin),
- gpio_input_data_bit_read(load_sens[5].port, load_sens[5].pin),
- gpio_input_data_bit_read(load_sens[6].port, load_sens[6].pin),
- gpio_input_data_bit_read(load_sens[7].port, load_sens[7].pin));
-
- vTaskDelay(500);
- }
- }
|