Index: firmware/source/het.c =================================================================== diff -u -r792764062d7b7826af10e030277f18379af4fcd1 -rabb9687e52d9db5df1abe7626ba04a6d431ba823 --- firmware/source/het.c (.../het.c) (revision 792764062d7b7826af10e030277f18379af4fcd1) +++ firmware/source/het.c (.../het.c) (revision abb9687e52d9db5df1abe7626ba04a6d431ba823) @@ -60,17 +60,6 @@ 3U, }; -static const uint32 s_het2pwmPolarity[8U] = -{ - 3U, - 3U, - 3U, - 3U, - 3U, - 3U, - 3U, - 3U, -}; /*----------------------------------------------------------------------------*/ /* Default Program */ @@ -378,13 +367,13 @@ * - Next instruction = 18 * - Conditional next instruction = 18 * - Interrupt = 17 - * - Pin = 9 + * - Pin = 12 */ { /* Program */ 0x00025440U, /* Control */ - (0x00024007U | (uint32)((uint32)9U << 8U) | (uint32)((uint32)1U << 4U)), + (0x00024007U | (uint32)((uint32)12U << 8U) | (uint32)((uint32)1U << 4U)), /* Data */ 0x00000000U, /* Reserved */ @@ -395,13 +384,13 @@ * - Next instruction = 19 * - Conditional next instruction = 19 * - Interrupt = 18 - * - Pin = 11 + * - Pin = 14 */ { /* Program */ 0x00027440U, /* Control */ - (0x00026007U | (uint32)((uint32)11U << 8U) | (uint32)((uint32)1U << 4U)), + (0x00026007U | (uint32)((uint32)14U << 8U) | (uint32)((uint32)1U << 4U)), /* Data */ 0x00000000U, /* Reserved */ @@ -412,13 +401,13 @@ * - Next instruction = 20 * - Conditional next instruction = 20 * - Interrupt = 19 - * - Pin = 13 + * - Pin = 30 */ { /* Program */ 0x00029440U, /* Control */ - (0x00028007U | (uint32)((uint32)13U << 8U) | (uint32)((uint32)1U << 4U)), + (0x00028007U | (uint32)((uint32)30U << 8U) | (uint32)((uint32)1U << 4U)), /* Data */ 0x00000000U, /* Reserved */ @@ -794,7 +783,7 @@ /* Control */ (0x00004007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)8U << 8U) | (uint32)((uint32)3U << 3U)), /* Data */ - 55296U, + 52224U, /* Reserved */ 0x00000000U }, @@ -811,7 +800,7 @@ /* Control */ (0x00052007U), /* Data */ - 109952U, + 103936U, /* Reserved */ 0x00000000U }, @@ -828,7 +817,7 @@ /* Control */ (0x00008007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)10U << 8U) | (uint32)((uint32)3U << 3U)), /* Data */ - 55296U, + 52224U, /* Reserved */ 0x00000000U }, @@ -845,7 +834,7 @@ /* Control */ (0x00056007U), /* Data */ - 109952U, + 103936U, /* Reserved */ 0x00000000U }, @@ -862,7 +851,7 @@ /* Control */ (0x0000C007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)12U << 8U) | (uint32)((uint32)3U << 3U)), /* Data */ - 55296U, + 52224U, /* Reserved */ 0x00000000U }, @@ -879,7 +868,7 @@ /* Control */ (0x0005A007U), /* Data */ - 109952U, + 103936U, /* Reserved */ 0x00000000U }, @@ -896,7 +885,7 @@ /* Control */ (0x00010007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)14U << 8U) | (uint32)((uint32)3U << 3U)), /* Data */ - 55296U, + 52224U, /* Reserved */ 0x00000000U }, @@ -913,7 +902,7 @@ /* Control */ (0x0005E007U), /* Data */ - 109952U, + 103936U, /* Reserved */ 0x00000000U }, @@ -930,7 +919,7 @@ /* Control */ (0x00014007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)16U << 8U) | (uint32)((uint32)3U << 3U)), /* Data */ - 55296U, + 52224U, /* Reserved */ 0x00000000U }, @@ -947,7 +936,7 @@ /* Control */ (0x00062007U), /* Data */ - 109952U, + 103936U, /* Reserved */ 0x00000000U }, @@ -964,7 +953,7 @@ /* Control */ (0x00018007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)17U << 8U) | (uint32)((uint32)3U << 3U)), /* Data */ - 55296U, + 52224U, /* Reserved */ 0x00000000U }, @@ -981,7 +970,7 @@ /* Control */ (0x00066007U), /* Data */ - 109952U, + 103936U, /* Reserved */ 0x00000000U }, @@ -998,7 +987,7 @@ /* Control */ (0x0001C007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)18U << 8U) | (uint32)((uint32)3U << 3U)), /* Data */ - 55296U, + 52224U, /* Reserved */ 0x00000000U }, @@ -1015,7 +1004,7 @@ /* Control */ (0x0006A007U), /* Data */ - 109952U, + 103936U, /* Reserved */ 0x00000000U }, @@ -1032,7 +1021,7 @@ /* Control */ (0x00020007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)19U << 8U) | (uint32)((uint32)3U << 3U)), /* Data */ - 55296U, + 52224U, /* Reserved */ 0x00000000U }, @@ -1049,7 +1038,7 @@ /* Control */ (0x0006E007U), /* Data */ - 109952U, + 103936U, /* Reserved */ 0x00000000U }, @@ -1074,1008 +1063,7 @@ }; -/*----------------------------------------------------------------------------*/ -/* Default Program */ -/** @var static const hetINSTRUCTION_t het2PROGRAM[58] -* @brief Default Program -* -* Het program running after initialization. -*/ - -static const hetINSTRUCTION_t het2PROGRAM[58U] = -{ - /* CNT: Timebase - * - Instruction = 0 - * - Next instruction = 1 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = na - * - Reg = T - */ - { - /* Program */ - 0x00002C80U, - /* Control */ - 0x01FFFFFFU, - /* Data */ - 0xFFFFFF80U, - /* Reserved */ - 0x00000000U - }, - /* PWCNT: PWM 0 -> Duty Cycle - * - Instruction = 1 - * - Next instruction = 2 - * - Conditional next instruction = 2 - * - Interrupt = 1 - * - Pin = 8 - */ - { - /* Program */ - 0x000055C0U, - /* Control */ - (0x00004006U | (uint32)((uint32)8U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* DJZ: PWM 0 -> Period - * - Instruction = 2 - * - Next instruction = 3 - * - Conditional next instruction = 41 - * - Interrupt = 2 - * - Pin = na - */ - { - /* Program */ - 0x00007480U, - /* Control */ - 0x00052006U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PWCNT: PWM 1 -> Duty Cycle - * - Instruction = 3 - * - Next instruction = 4 - * - Conditional next instruction = 4 - * - Interrupt = 3 - * - Pin = 10 - */ - { - /* Program */ - 0x000095C0U, - /* Control */ - (0x00008006U | (uint32)((uint32)10U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* DJZ: PWM 1 -> Period - * - Instruction = 4 - * - Next instruction = 5 - * - Conditional next instruction = 43 - * - Interrupt = 4 - * - Pin = na - */ - { - /* Program */ - 0x0000B480U, - /* Control */ - 0x00056006U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PWCNT: PWM 2 -> Duty Cycle - * - Instruction = 5 - * - Next instruction = 6 - * - Conditional next instruction = 6 - * - Interrupt = 5 - * - Pin = 12 - */ - { - /* Program */ - 0x0000D5C0U, - /* Control */ - (0x0000C006U | (uint32)((uint32)12U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* DJZ: PWM 2 -> Period - * - Instruction = 6 - * - Next instruction = 7 - * - Conditional next instruction = 45 - * - Interrupt = 6 - * - Pin = na - */ - { - /* Program */ - 0x0000F480U, - /* Control */ - 0x0005A006U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PWCNT: PWM 3 -> Duty Cycle - * - Instruction = 7 - * - Next instruction = 8 - * - Conditional next instruction = 8 - * - Interrupt = 7 - * - Pin = 14 - */ - { - /* Program */ - 0x000115C0U, - /* Control */ - (0x00010006U | (uint32)((uint32)14U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* DJZ: PWM 3 -> Period - * - Instruction = 8 - * - Next instruction = 9 - * - Conditional next instruction = 47 - * - Interrupt = 8 - * - Pin = na - */ - { - /* Program */ - 0x00013480U, - /* Control */ - 0x0005E006U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PWCNT: PWM 4 -> Duty Cycle - * - Instruction = 9 - * - Next instruction = 10 - * - Conditional next instruction = 10 - * - Interrupt = 9 - * - Pin = 16 - */ - { - /* Program */ - 0x000155C0U, - /* Control */ - (0x00014006U | (uint32)((uint32)16U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* DJZ: PWM 4 -> Period - * - Instruction = 10 - * - Next instruction = 11 - * - Conditional next instruction = 49 - * - Interrupt = 10 - * - Pin = na - */ - { - /* Program */ - 0x00017480U, - /* Control */ - 0x00062006U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PWCNT: PWM 5 -> Duty Cycle - * - Instruction = 11 - * - Next instruction = 12 - * - Conditional next instruction = 12 - * - Interrupt = 11 - * - Pin = 17 - */ - { - /* Program */ - 0x000195C0U, - /* Control */ - (0x00018006U | (uint32)((uint32)17U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* DJZ: PWM 5 -> Period - * - Instruction = 12 - * - Next instruction = 13 - * - Conditional next instruction = 51 - * - Interrupt = 12 - * - Pin = na - */ - { - /* Program */ - 0x0001B480U, - /* Control */ - 0x00066006U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PWCNT: PWM 6 -> Duty Cycle - * - Instruction = 13 - * - Next instruction = 14 - * - Conditional next instruction = 14 - * - Interrupt = 13 - * - Pin = 18 - */ - { - /* Program */ - 0x0001D5C0U, - /* Control */ - (0x0001C006U | (uint32)((uint32)18U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* DJZ: PWM 6 -> Period - * - Instruction = 14 - * - Next instruction = 15 - * - Conditional next instruction = 53 - * - Interrupt = 14 - * - Pin = na - */ - { - /* Program */ - 0x0001F480U, - /* Control */ - 0x0006A006U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PWCNT: PWM 7 -> Duty Cycle - * - Instruction = 15 - * - Next instruction = 16 - * - Conditional next instruction = 16 - * - Interrupt = 15 - * - Pin = 19 - */ - { - /* Program */ - 0x000215C0U, - /* Control */ - (0x00020006U | (uint32)((uint32)19U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* DJZ: PWM 7 -> Period - * - Instruction = 16 - * - Next instruction = 17 - * - Conditional next instruction = 55 - * - Interrupt = 16 - * - Pin = na - */ - { - /* Program */ - 0x00023480U, - /* Control */ - 0x0006E006U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* ECNT: CCU Edge 0 - * - Instruction = 17 - * - Next instruction = 18 - * - Conditional next instruction = 18 - * - Interrupt = 17 - * - Pin = 0 - */ - { - /* Program */ - 0x00025440U, - /* Control */ - (0x00024007U | (uint32)((uint32)0U << 8U) | (uint32)((uint32)1U << 4U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* ECNT: CCU Edge 1 - * - Instruction = 18 - * - Next instruction = 19 - * - Conditional next instruction = 19 - * - Interrupt = 18 - * - Pin = 2 - */ - { - /* Program */ - 0x00027440U, - /* Control */ - (0x00026007U | (uint32)((uint32)2U << 8U) | (uint32)((uint32)1U << 4U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* ECNT: CCU Edge 2 - * - Instruction = 19 - * - Next instruction = 20 - * - Conditional next instruction = 20 - * - Interrupt = 19 - * - Pin = 4 - */ - { - /* Program */ - 0x00029440U, - /* Control */ - (0x00028007U | (uint32)((uint32)4U << 8U) | (uint32)((uint32)1U << 4U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* ECNT: CCU Edge 3 - * - Instruction = 20 - * - Next instruction = 21 - * - Conditional next instruction = 21 - * - Interrupt = 20 - * - Pin = 6 - */ - { - /* Program */ - 0x0002B440U, - /* Control */ - (0x0002A007U | (uint32)((uint32)6U << 8U) | (uint32)((uint32)1U << 4U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* ECNT: CCU Edge 4 - * - Instruction = 21 - * - Next instruction = 22 - * - Conditional next instruction = 22 - * - Interrupt = 21 - * - Pin = 8 - */ - { - /* Program */ - 0x0002D440U, - /* Control */ - (0x0002C007U | (uint32)((uint32)8U << 8U) | (uint32)((uint32)1U << 4U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* ECNT: CCU Edge 5 - * - Instruction = 22 - * - Next instruction = 23 - * - Conditional next instruction = 23 - * - Interrupt = 22 - * - Pin = 10 - */ - { - /* Program */ - 0x0002F440U, - /* Control */ - (0x0002E007U | (uint32)((uint32)10U << 8U) | (uint32)((uint32)1U << 4U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* ECNT: CCU Edge 6 - * - Instruction = 23 - * - Next instruction = 24 - * - Conditional next instruction = 24 - * - Interrupt = 23 - * - Pin = 12 - */ - { - /* Program */ - 0x00031440U, - /* Control */ - (0x00030007U | (uint32)((uint32)12U << 8U) | (uint32)((uint32)1U << 4U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* ECNT: CCU Edge 7 - * - Instruction = 24 - * - Next instruction = 25 - * - Conditional next instruction = 25 - * - Interrupt = 24 - * - Pin = 14 - */ - { - /* Program */ - 0x00033440U, - /* Control */ - (0x00032007U | (uint32)((uint32)14U << 8U) | (uint32)((uint32)1U << 4U)), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Duty 0 - * - Instruction = 25 - * - Next instruction = 26 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 0 - */ - { - /* Program */ - 0x00034E00U | (uint32)((uint32)0U << 6U) | (uint32)(0U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Period 0 - * - Instruction = 26 - * - Next instruction = 27 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 0 + 1 - */ - { - /* Program */ - 0x00036E80U | (uint32)((uint32)0U << 6U) | (uint32)((0U) + 1U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Duty 1 - * - Instruction = 27 - * - Next instruction = 28 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 2 - */ - { - /* Program */ - 0x00038E00U | (uint32)((uint32)0U << 6U) | (uint32)(2U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Period 1 - * - Instruction = 28 - * - Next instruction = 29 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 2 + 1 - */ - { - /* Program */ - 0x0003AE80U | (uint32)((uint32)0U << 6U) | (uint32)((2U) + 1U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Duty 2 - * - Instruction = 29 - * - Next instruction = 30 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 4 - */ - { - /* Program */ - 0x0003CE00U | (uint32)((uint32)0U << 6U) | (uint32)(4U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Period 2 - * - Instruction = 30 - * - Next instruction = 31 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 4 + 1 - */ - { - /* Program */ - 0x0003EE80U | (uint32)((uint32)0U << 6U) | (uint32)((4U) + 1U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Duty 3 - * - Instruction = 31 - * - Next instruction = 32 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 6 - */ - { - /* Program */ - 0x00040E00U | (uint32)((uint32)0U << 6U) | (uint32)(6U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Period 3 - * - Instruction = 32 - * - Next instruction = 33 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 6 + 1 - */ - { - /* Program */ - 0x00042E80U | (uint32)((uint32)0U << 6U) | (uint32)((6U) + 1U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Duty 4 - * - Instruction = 33 - * - Next instruction = 34 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 0 - */ - { - /* Program */ - 0x00044E00U | (uint32)((uint32)0U << 6U) | (uint32)(0U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Period 4 - * - Instruction = 34 - * - Next instruction = 35 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 0 + 1 - */ - { - /* Program */ - 0x00046E80U | (uint32)((uint32)0U << 6U) | (uint32)((0U) + 1U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Duty 5 - * - Instruction = 35 - * - Next instruction = 36 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 2 - */ - { - /* Program */ - 0x00048E00U | (uint32)((uint32)0U << 6U) | (uint32)(2U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Period 5 - * - Instruction = 36 - * - Next instruction = 37 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 2 + 1 - */ - { - /* Program */ - 0x0004AE80U | (uint32)((uint32)0U << 6U) | (uint32)((2U) + 1U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Duty 6 - * - Instruction = 37 - * - Next instruction = 38 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 4 - */ - { - /* Program */ - 0x0004CE00U | (uint32)((uint32)0U << 6U) | (uint32)(4U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Period 6 - * - Instruction = 38 - * - Next instruction = 39 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 4 + 1 - */ - { - /* Program */ - 0x0004EE80U | (uint32)((uint32)0U << 6U) | (uint32)((4U) + 1U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Duty 7 - * - Instruction = 39 - * - Next instruction = 40 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 6 - */ - { - /* Program */ - 0x00050E00U | (uint32)((uint32)0U << 6U) | (uint32)(6U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* PCNT: Capture Period 7 - * - Instruction = 40 - * - Next instruction = 57 - * - Conditional next instruction = na - * - Interrupt = na - * - Pin = 6 + 1 - */ - { - /* Program */ - 0x00072E80U | (uint32)((uint32)0U << 6U) | (uint32)((6U) + 1U), - /* Control */ - 0x00000000U, - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 0 -> Duty Cycle Update - * - Instruction = 41 - * - Next instruction = 42 - * - Conditional next instruction = 2 - * - Interrupt = 1 - * - Pin = 8 - */ - { - /* Program */ - 0x00054201U, - /* Control */ - (0x00004007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)8U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 55296U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 0 -> Period Update - * - Instruction = 42 - * - Next instruction = 3 - * - Conditional next instruction = 41 - * - Interrupt = 2 - * - Pin = na - */ - { - /* Program */ - 0x00006202U, - /* Control */ - (0x00052007U), - /* Data */ - 109952U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 1 -> Duty Cycle Update - * - Instruction = 43 - * - Next instruction = 44 - * - Conditional next instruction = 4 - * - Interrupt = 3 - * - Pin = 10 - */ - { - /* Program */ - 0x00058203U, - /* Control */ - (0x00008007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)10U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 55296U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 1 -> Period Update - * - Instruction = 44 - * - Next instruction = 5 - * - Conditional next instruction = 43 - * - Interrupt = 4 - * - Pin = na - */ - { - /* Program */ - 0x0000A204U, - /* Control */ - (0x00056007U), - /* Data */ - 109952U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 2 -> Duty Cycle Update - * - Instruction = 45 - * - Next instruction = 46 - * - Conditional next instruction = 6 - * - Interrupt = 5 - * - Pin = 12 - */ - { - /* Program */ - 0x0005C205U, - /* Control */ - (0x0000C007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)12U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 55296U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 2 -> Period Update - * - Instruction = 46 - * - Next instruction = 7 - * - Conditional next instruction = 45 - * - Interrupt = 6 - * - Pin = na - */ - { - /* Program */ - 0x0000E206U, - /* Control */ - (0x0005A007U), - /* Data */ - 109952U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 3 -> Duty Cycle Update - * - Instruction = 47 - * - Next instruction = 48 - * - Conditional next instruction = 8 - * - Interrupt = 7 - * - Pin = 14 - */ - { - /* Program */ - 0x00060207U, - /* Control */ - (0x00010007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)14U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 55296U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 3 -> Period Update - * - Instruction = 48 - * - Next instruction = 9 - * - Conditional next instruction = 47 - * - Interrupt = 8 - * - Pin = na - */ - { - /* Program */ - 0x00012208U, - /* Control */ - (0x0005E007U), - /* Data */ - 109952U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 4 -> Duty Cycle Update - * - Instruction = 49 - * - Next instruction = 50 - * - Conditional next instruction = 10 - * - Interrupt = 9 - * - Pin = 16 - */ - { - /* Program */ - 0x00064209U, - /* Control */ - (0x00014007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)16U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 55296U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 4 -> Period Update - * - Instruction = 50 - * - Next instruction = 11 - * - Conditional next instruction = 49 - * - Interrupt = 10 - * - Pin = na - */ - { - /* Program */ - 0x0001620AU, - /* Control */ - (0x00062007U), - /* Data */ - 109952U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 5 -> Duty Cycle Update - * - Instruction = 51 - * - Next instruction = 52 - * - Conditional next instruction = 12 - * - Interrupt = 11 - * - Pin = 17 - */ - { - /* Program */ - 0x0006820BU, - /* Control */ - (0x00018007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)17U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 55296U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 5 -> Period Update - * - Instruction = 52 - * - Next instruction = 13 - * - Conditional next instruction = 51 - * - Interrupt = 12 - * - Pin = na - */ - { - /* Program */ - 0x0001A20CU, - /* Control */ - (0x00066007U), - /* Data */ - 109952U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 6 -> Duty Cycle Update - * - Instruction = 53 - * - Next instruction = 54 - * - Conditional next instruction = 14 - * - Interrupt = 13 - * - Pin = 18 - */ - { - /* Program */ - 0x0006C20DU, - /* Control */ - (0x0001C007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)18U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 55296U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 6 -> Period Update - * - Instruction = 54 - * - Next instruction = 15 - * - Conditional next instruction = 53 - * - Interrupt = 14 - * - Pin = na - */ - { - /* Program */ - 0x0001E20EU, - /* Control */ - (0x0006A007U), - /* Data */ - 109952U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 7 -> Duty Cycle Update - * - Instruction = 55 - * - Next instruction = 56 - * - Conditional next instruction = 16 - * - Interrupt = 15 - * - Pin = 19 - */ - { - /* Program */ - 0x0007020FU, - /* Control */ - (0x00020007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)19U << 8U) | (uint32)((uint32)3U << 3U)), - /* Data */ - 55296U, - /* Reserved */ - 0x00000000U - }, - /* MOV64: PWM 7 -> Period Update - * - Instruction = 56 - * - Next instruction = 17 - * - Conditional next instruction = 55 - * - Interrupt = 16 - * - Pin = na - */ - { - /* Program */ - 0x00022210U, - /* Control */ - (0x0006E007U), - /* Data */ - 109952U, - /* Reserved */ - 0x00000000U - }, - /* WCAP: Capture timestamp - * - Instruction = 57 - * - Next instruction = 0 - * - Conditional next instruction = 0 - * - Interrupt = na - * - Pin = na - * - Reg = T - */ - { - /* Program */ - 0x00001600U, - /* Control */ - (0x00000004U), - /* Data */ - 0x00000000U, - /* Reserved */ - 0x00000000U - }, -}; - - /** @fn void hetInit(void) * @brief Initializes the het Driver * @@ -2132,9 +1120,11 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00400000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00040000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U @@ -2148,12 +1138,10 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00000010U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U | (uint32) 0x00000000U; /** - Set HET pins open drain enable */ @@ -2234,6 +1222,7 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00400000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U @@ -2255,7 +1244,6 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U - | (uint32) 0x00000000U | (uint32) 0x00000000U; /** - Set HET pins high resolution share */ @@ -2378,13 +1366,13 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00020000U + | (uint32) 0x00040000U + | (uint32) 0x00080000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U | (uint32) 0x00000000U; /** - Enable interrupts @@ -2430,13 +1418,13 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00020000U + | (uint32) 0x00040000U + | (uint32) 0x00080000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U | (uint32) 0x00000000U; @@ -2452,302 +1440,6 @@ | (0x00020000U)); - /** @b initialize @b HET 2 */ - - /** - Set HET pins default output value */ - hetREG2->DOUT = (uint32)((uint32)0U << 18U) - | (uint32)((uint32)0U << 17U) - | (uint32)((uint32)0U << 16U) - | (uint32)((uint32)0U << 15U) - | (uint32)((uint32)0U << 14U) - | (uint32)((uint32)0U << 13U) - | (uint32)((uint32)0U << 12U) - | (uint32)((uint32)0U << 11U) - | (uint32)((uint32)0U << 10U) - | (uint32)((uint32)0U << 9U) - | (uint32)((uint32)0U << 8U) - | (uint32)((uint32)0U << 7U) - | (uint32)((uint32)0U << 6U) - | (uint32)((uint32)0U << 5U) - | (uint32)((uint32)0U << 4U) - | (uint32)((uint32)0U << 3U) - | (uint32)((uint32)0U << 2U) - | (uint32)((uint32)0U << 1U) - | (uint32)((uint32)0U << 0U); - - /** - Set HET pins direction */ - hetREG2->DIR = (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U; - - /** - Set HET pins open drain enable */ - hetREG2->PDR = (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U; - - /** - Set HET pins pullup/down enable */ - hetREG2->PULDIS = (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U; - - /** - Set HET pins pullup/down select */ - hetREG2->PSL = (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U; - - /** - Set HET pins high resolution share */ - hetREG2->HRSH = (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000008U - | (uint32) 0x00000004U - | (uint32) 0x00000002U - | (uint32) 0x00000001U; - - /** - Set HET pins AND share */ - hetREG2->AND = (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U; - - /** - Set HET pins XOR share */ - hetREG2->XOR = (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U; - -/* USER CODE BEGIN (2) */ -/* USER CODE END */ - - /** - Setup prescaler values - * - Loop resolution prescaler - * - High resolution prescaler - */ - hetREG2->PFR = (uint32)((uint32) 7U << 8U) - | ((uint32) 0U); - - /** - Parity control register - * - Enable/Disable Parity check - */ - hetREG2->PCR = (uint32) 0x00000005U; - - /** - Fill HET RAM with opcodes and Data */ - -/* USER CODE BEGIN (3) */ -/* USER CODE END */ - - /** - Release from reset */ - /*SAFETYMCUSW 94 S MR:11.1,11.2,11.4 "HET RAM Fill from the table - Allowed as per MISRA rule 11.2" */ - /*SAFETYMCUSW 94 S MR:11.1,11.2,11.4 "HET RAM Fill from the table - Allowed as per MISRA rule 11.2" */ - /*SAFETYMCUSW 95 S MR:11.1,11.4 "HET RAM Fill from the table - Allowed as per MISRA rule 11.2" */ - /*SAFETYMCUSW 95 S MR:11.1,11.4 "HET RAM Fill from the table - Allowed as per MISRA rule 11.2" */ - (void)memcpy((void *)hetRAM2, (const void *)het2PROGRAM, sizeof(het2PROGRAM)); - - /** - Setup prescaler values - * - Loop resolution prescaler - * - High resolution prescaler - */ - hetREG2->PFR = (uint32)((uint32) 7U << 8U) - | ((uint32) 0U); - - /** - Setup interrupt priority level - * - PWM 0 end of duty level - * - PWM 0 end of period level - * - PWM 1 end of duty level - * - PWM 1 end of period level - * - PWM 2 end of duty level - * - PWM 2 end of period level - * - PWM 3 end of duty level - * - PWM 3 end of period level - * - PWM 4 end of duty level - * - PWM 4 end of period level - * - PWM 5 end of duty level - * - PWM 5 end of period level - * - PWM 6 end of duty level - * - PWM 6 end of period level - * - PWM 7 end of duty level - * - PWM 7 end of period level - - * - CCU Edge Detection 0 level - * - CCU Edge Detection 1 level - * - CCU Edge Detection 2 level - * - CCU Edge Detection 3 level - * - CCU Edge Detection 4 level - * - CCU Edge Detection 5 level - * - CCU Edge Detection 6 level - * - CCU Edge Detection 7 level - */ - hetREG2->PRY = (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U; - - /** - Enable interrupts - * - PWM 0 end of duty - * - PWM 0 end of period - * - PWM 1 end of duty - * - PWM 1 end of period - * - PWM 2 end of duty - * - PWM 2 end of period - * - PWM 3 end of duty - * - PWM 3 end of period - * - PWM 4 end of duty - * - PWM 4 end of period - * - PWM 5 end of duty - * - PWM 5 end of period - * - PWM 6 end of duty - * - PWM 6 end of period - * - PWM 7 end of duty - * - PWM 7 end of period - * - CCU Edge Detection 0 - * - CCU Edge Detection 1 - * - CCU Edge Detection 2 - * - CCU Edge Detection 3 - * - CCU Edge Detection 4 - * - CCU Edge Detection 5 - * - CCU Edge Detection 6 - * - CCU Edge Detection 7 - */ - hetREG2->INTENAC = 0xFFFFFFFFU; - hetREG2->INTENAS = (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U - | (uint32) 0x00000000U; - - - - /** - Setup control register - * - Enable output buffers - * - Ignore software breakpoints - * - Master or Slave Clock Mode - * - Enable HET - */ - hetREG2->GCR = ( 0x00000001U - | (uint32)((uint32)0U << 24U) - | (uint32)((uint32)1U << 16U) - | (0x00020000U)); - - /** @note This function has to be called before the driver can be used.\n - * This function has to be executed in privileged mode.\n - */ - - } /** @fn void pwmStart( hetRAMBASE_t * hetRAM, uint32 pwm) * @brief Start pwm signal @@ -2836,7 +1528,6 @@ } else { - pwmPolarity = s_het2pwmPolarity[pwm]; } if (pwmDuty == 0U) { @@ -2887,13 +1578,11 @@ if(hetRAM == hetRAM1) { - pwmPeriod = (signal.period * 1000.0F) / 1163.636F; + pwmPeriod = (signal.period * 1000.0F) / 1230.769F; pwmPolarity = s_het1pwmPolarity[pwm]; } else { - pwmPeriod = (signal.period * 1000.0F) / 1163.636F; - pwmPolarity = s_het2pwmPolarity[pwm]; } if (signal.duty == 0U) { @@ -2947,11 +1636,11 @@ if(hetRAM == hetRAM1) { - signal->period = ((float64)pwmPeriod * 1163.636F) / 1000.0F; + signal->period = ((float64)pwmPeriod * 1230.769F) / 1000.0F; } else { - signal->period = ((float64)pwmPeriod * 1163.636F) / 1000.0F; + signal->period = ((float64)pwmPeriod * 1230.769F) / 1000.0F; } } @@ -3145,11 +1834,11 @@ if( hetRAM == hetRAM1) { - signal->period = ((float64)pwmPeriod * 1163.636F) / 1000.0F; + signal->period = ((float64)pwmPeriod * 1230.769F) / 1000.0F; } else { - signal->period = ((float64)pwmPeriod * 1163.636F) / 1000.0F; + signal->period = ((float64)pwmPeriod * 1230.769F) / 1000.0F; } } @@ -3243,62 +1932,5 @@ } } -/** @fn void het2GetConfigValue(het_config_reg_t *config_reg, config_value_type_t type) -* @brief Get the initial or current values of the HET2 configuration registers -* -* @param[in] *config_reg: pointer to the struct to which the initial or current -* value of the configuration registers need to be stored -* @param[in] type: whether initial or current value of the configuration registers need to be stored -* - InitialValue: initial value of the configuration registers will be stored -* in the struct pointed by config_reg -* - CurrentValue: initial value of the configuration registers will be stored -* in the struct pointed by config_reg -* -* This function will copy the initial or current value (depending on the parameter 'type') -* of the configuration registers to the struct pointed by config_reg -* -*/ -/* SourceId : HET_SourceId_017 */ -/* DesignId : HET_DesignId_016 */ -/* Requirements : HL_SR379 */ -void het2GetConfigValue(het_config_reg_t *config_reg, config_value_type_t type) -{ - if (type == InitialValue) - { - config_reg->CONFIG_GCR = HET2_GCR_CONFIGVALUE; - config_reg->CONFIG_PFR = HET2_PFR_CONFIGVALUE; - config_reg->CONFIG_INTENAS = HET2_INTENAS_CONFIGVALUE; - config_reg->CONFIG_INTENAC = HET2_INTENAC_CONFIGVALUE; - config_reg->CONFIG_PRY = HET2_PRY_CONFIGVALUE; - config_reg->CONFIG_AND = HET2_AND_CONFIGVALUE; - config_reg->CONFIG_HRSH = HET2_HRSH_CONFIGVALUE; - config_reg->CONFIG_XOR = HET2_XOR_CONFIGVALUE; - config_reg->CONFIG_DIR = HET2_DIR_CONFIGVALUE; - config_reg->CONFIG_PDR = HET2_PDR_CONFIGVALUE; - config_reg->CONFIG_PULDIS = HET2_PULDIS_CONFIGVALUE; - config_reg->CONFIG_PSL = HET2_PSL_CONFIGVALUE; - config_reg->CONFIG_PCR = HET2_PCR_CONFIGVALUE; - } - else - { - /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */ - config_reg->CONFIG_GCR = hetREG2->GCR; - config_reg->CONFIG_PFR = hetREG2->PFR; - config_reg->CONFIG_INTENAS = hetREG2->INTENAS; - config_reg->CONFIG_INTENAC = hetREG2->INTENAC; - config_reg->CONFIG_PRY = hetREG2->PRY; - config_reg->CONFIG_AND = hetREG2->AND; - config_reg->CONFIG_HRSH = hetREG2->HRSH; - config_reg->CONFIG_XOR = hetREG2->XOR; - config_reg->CONFIG_DIR = hetREG2->DIR; - config_reg->CONFIG_PDR = hetREG2->PDR; - config_reg->CONFIG_PULDIS = hetREG2->PULDIS; - config_reg->CONFIG_PSL = hetREG2->PSL; - config_reg->CONFIG_PCR = hetREG2->PCR; - } -} - - -