Только есть небольшая задумка - сделать универсальные выводы\входы, а не жостко привязанные.
Или будет достаточно большая проблема "обозначения" с точки зрения софта определённых вещей?
К примеру имеем стандартный набор входов\выходов. Грубо говоря дефолтный. Например:
Code: Select all
/* Injector ports */
#define INJECTOR_1_PORT GPIOB
#define INJECTOR_1_PIN 9
#define INJECTOR_1_XOR 0
#define INJECTOR_2_PORT GPIOE
#define INJECTOR_2_PIN 1
#define INJECTOR_2_XOR 0
#define INJECTOR_3_PORT GPIOE
#define INJECTOR_3_PIN 3
#define INJECTOR_3_XOR 0
#define INJECTOR_4_PORT GPIOE
#define INJECTOR_4_PIN 5
#define INJECTOR_4_XOR 0
#define INJECTOR_5_PORT GPIOE
#define INJECTOR_5_PIN 6
#define INJECTOR_5_XOR 0
/* Spark ports */
#define SPARK_1_PORT GPIOC
#define SPARK_1_PIN 15
#define SPARK_1_XOR 1
#define SPARK_2_PORT GPIOE
#define SPARK_2_PIN 4
#define SPARK_2_XOR 1
Так как мы делаем дико гибкий мозг - то в корне не верно прописывать данный конфиг. Я понимаю всё на стадии разработки. Но всё же.
Итак у меня такая мысля:
Давайте не будем жостко прописывать, к примеру выводы форсунок и катушек, да и вообще всего остального? Давайте сделаем нечто вроде матрицы входов\выходов. Где по мере настройки использовать. Например, ну не хочу я использовать вывод PE6 как канал 5й форсунки. А например хочу использовать в качестве триггера, к примеру, реле включения вентилятора. Может у меня дикий дроч, что хочу использовать как первый канал зажигания не PC15, а какой либо другой, например PE1 и тд...
Так же, нужно прийти к общему знаменателю, ведь входов ADC не много, так же как и выходов с PWM не много. Необходимо нарисовать схему(распиновку), где блоками отводить функционал для чего либо, например для форсунок\катушек\датчиков\релюх.