Changeset 7 for trunk/firmware/SES/Src


Ignore:
Timestamp:
May 24, 2023, 1:47:09 PM (2 years ago)
Author:
f.jahn
Message:

12V variant is working good.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/firmware/SES/Src/precharge.c

    r4 r7  
    1111extern void DoNothing(void);
    1212
    13 static void (*ReturnFunctionPtr)(void);
     13static void (*WhereToGoAfterPrecharge)(void);
    1414
    1515//------------------------------------------------------------------------------
     
    1717void SetReturnFunction(void (*WhereToReturnControl)(void))
    1818{
    19         if (NULL != WhereToReturnControl) ReturnFunctionPtr = WhereToReturnControl;
     19        if (WhereToReturnControl != NULL) WhereToGoAfterPrecharge = WhereToReturnControl;
    2020}
    2121
     
    3333        static int mal = 0;
    3434                                                                //   DAC = 0   DAC = 3V
    35         const int32_t delay_µs[DELAYS_NUM] = {   3, 3,    // 0, 1         - 6710µs is MAX @320kHz, [0,1,2,3] = 3µs
    36                                                                                500, 3,    // 2, 3
    37                                                                                    500, 3,        // 4, 5
    38                                                                                    500            // 6
     35        const int32_t delay_µs[DELAYS_NUM] = {   3, 3,    // 0, 1         - 6710µs is MAX @320kHz, [0,1,2,3] = 3µs, [4] = 5.5µs
     36                                                                               700, 3,    // 2, 3
     37                                                                                   700, 4,        // 4, 5
     38                                                                                   700            // 6
    3939                                                                             };
    4040        const int32_t delay_cnt[DELAYS_NUM] = { (delay_µs[ 0 ] * CURRENT_INTEGRAL_FREQ) / MHz,
     
    125125                                stage = 5;
    126126                               
    127                                 if (mal++ >= 1000/*1600*/)        // approx 95ms
     127                                if (mal++ >= 100/*12000*/)        // approx 4.25s
    128128                                {
    129129                                        mal = 0;
    130130                                        stage = 0;
    131131                                        HAL_NVIC_DisableIRQ(ADC_DMA_IRQ);
    132                                         if (NULL != ReturnFunctionPtr) MOSFETS_Management = ReturnFunctionPtr;
     132                                        if (WhereToGoAfterPrecharge != NULL) MOSFETS_Management = WhereToGoAfterPrecharge;
    133133                                        else MOSFETS_Management = &DoNothing;
    134134                                        HAL_NVIC_EnableIRQ(ADC_DMA_IRQ);
Note: See TracChangeset for help on using the changeset viewer.