mappings scaffold
This commit is contained in:
		
							
								
								
									
										95
									
								
								Software/Core/Inc/mappings.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								Software/Core/Inc/mappings.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,95 @@
 | 
			
		||||
#ifndef MAPPINGS_H
 | 
			
		||||
#define MAPPINGS_H
 | 
			
		||||
 | 
			
		||||
#define CURRENT_NODE FRONT_NODE
 | 
			
		||||
 | 
			
		||||
#define IGRID_L1      1
 | 
			
		||||
#define IGRID_L2      2
 | 
			
		||||
#define IGRID_L3      3
 | 
			
		||||
#define IGRID_L4      4
 | 
			
		||||
#define IGRID_L5      5
 | 
			
		||||
#define IGRID_L6      6
 | 
			
		||||
#define IGRID_L7      7
 | 
			
		||||
#define IGRID_L8      8
 | 
			
		||||
#define IGRID_L9      9
 | 
			
		||||
#define IGRID_L10     10
 | 
			
		||||
#define IGRID_L11     11
 | 
			
		||||
#define IGRID_L12     12
 | 
			
		||||
#define IGRID_L13     13
 | 
			
		||||
#define IGRID_L14     14
 | 
			
		||||
#define IGRID_L15     15
 | 
			
		||||
#define IGRID_L16     16
 | 
			
		||||
 | 
			
		||||
#define IGRID_R1      17
 | 
			
		||||
#define IGRID_R2      18
 | 
			
		||||
#define IGRID_R3      19
 | 
			
		||||
#define IGRID_R4      20
 | 
			
		||||
#define IGRID_R5      21
 | 
			
		||||
#define IGRID_R6      22
 | 
			
		||||
#define IGRID_R7      23
 | 
			
		||||
#define IGRID_R8      24
 | 
			
		||||
#define IGRID_R9      25
 | 
			
		||||
#define IGRID_R10     26
 | 
			
		||||
#define IGRID_R11     27
 | 
			
		||||
#define IGRID_R12     28
 | 
			
		||||
#define IGRID_R13     29
 | 
			
		||||
#define IGRID_R14     30
 | 
			
		||||
#define IGRID_R15     31
 | 
			
		||||
#define IGRID_R16     32
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Node agnostic mappings:
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
// NUR BEISPIEL!!!!
 | 
			
		||||
#define GET_GPIO_FROM_IGRID(igrid) \
 | 
			
		||||
    ((igrid) == IGRID_L1 ? A16_Pin : \
 | 
			
		||||
     (igrid) == IGRID_L2 ? A15_Pin : \
 | 
			
		||||
     (igrid) == IGRID_L3 ? A14_Pin : \
 | 
			
		||||
     (igrid) == IGRID_L4 ? A13_Pin : \
 | 
			
		||||
     (igrid) == IGRID_L5 ? A12_Pin : \
 | 
			
		||||
     (igrid) == IGRID_L6 ? A11_Pin : \
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
// AUCH NUR BEISPIEL!!
 | 
			
		||||
#define GET_ADC_CHANNEL_FROM_GPIO(gpio) \
 | 
			
		||||
    ((gpio) == A16_Pin ? ADC_CHANNEL_9  : \
 | 
			
		||||
     (gpio) == A15_Pin ? ADC_CHANNEL_3  : \
 | 
			
		||||
     (gpio) == A14_Pin ? ADC_CHANNEL_7  : \
 | 
			
		||||
     (gpio) == A13_Pin ? ADC_CHANNEL_4  : \
 | 
			
		||||
     (gpio) == A12_Pin ? ADC_CHANNEL_10 : \
 | 
			
		||||
     (gpio) == A11_Pin ? ADC_CHANNEL_11 : \
 | 
			
		||||
     (gpio) == A10_Pin ? ADC_CHANNEL_12 : \
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
// ADC1 GPIO to ADC_Channel macro
 | 
			
		||||
#define GET_ADC_CHANNEL_FROM_IGRID(igrid) \
 | 
			
		||||
    GET_ADC_CHANNEL_FROM_GPIO(GET_GPIO_FROM_IGRID(igrid))
 | 
			
		||||
 | 
			
		||||
// Node specific mappings:
 | 
			
		||||
#if CURRENT_NODE == FRONT_NODE
 | 
			
		||||
 | 
			
		||||
    // Useful during development / for verification?
 | 
			
		||||
    #define GET_NAME_FROM_IGRID(igrid) \
 | 
			
		||||
        ((igrid) == IGRID_L1 ? "WTPS1" : \
 | 
			
		||||
         (igrid) == IGRID_L2 ? "STS FL" : \
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    // @Oskar nicht sicher wie man das am bestem macht, da ja nicht jeder pin ein input is der auf CAN kommt, also wonach man das ordnen will
 | 
			
		||||
    #define CAN_START_BIT_FROM_IGRID(igrid) \
 | 
			
		||||
        ((igrid) == IGRID_L1 ? 0 : \
 | 
			
		||||
         (igrid) == IGRID_L2 ? 1 : \
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    // Hier würde ich dann weitere Defines machen für alles was dann das CAN frame bildet,
 | 
			
		||||
    // Start Bit, Bit count, etc, conversion factor (also von physischer größe die wir im
 | 
			
		||||
    // code bestimmen zu bits), quasi ne DBC mit defines. Abrufen macht man das dann mit macros
 | 
			
		||||
 | 
			
		||||
#elif CURRENT_NODE == REAR_NODE
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define FRONT_NODE  0
 | 
			
		||||
#define REAR_NODE   1
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Reference in New Issue
	
	Block a user