Pwm driver layer header file.
More...
#include "commonDataTypes.h"
#include "driverStatus.h "
Go to the source code of this file.
struct PwmPbitStatus
Pulse Width Modulation (PWM) Power-On Built-In Test (PBIT) Diagnostic Status Structure. More...
struct PwmCbitStatus
Pulse Width Modulation (PWM) Continuous Built-In Test (CBIT) Diagnostic Status Structure. More...
struct PwmDevHandler
Pulse Width Modulation (PWM) Peripheral Hardware Device Handler Structure. More...
Pwm driver layer header file.
Author Ramza Anuar ramza.nosp@m. .anu.nosp@m. ar@tu.nosp@m. sas..nosp@m. my
PWM device driver header file
◆ PWM_CHANNEL_MAX
#define PWM_CHANNEL_MAX (6U)
◆ PWM_DEV_CH_MAX
#define PWM_DEV_CH_MAX (4U)
◆ PWM_DUTY_CYCLE_MAX
#define PWM_DUTY_CYCLE_MAX (100U)
◆ PWM_SG_COND
#define PWM_SG_COND (0x03U)
◆ PWM_ULD
◆ PwmBITState
Pulse Width Modulation (PWM) Built-In Test (BIT) Pass/Fail Evaluation State.
Enumerator PWM_BIT_PASS PWM Built-In Test (BIT) pass condition.
PWM_BIT_FAIL PWM Built-In Test (BIT) failure condition.
PWM Built-In Test (BIT) failure condition.
◆ pwm_disable()
pwm_disable.
Disable PWM channel.
Parameters
[in] pwmDevHdl The pwm device handler.
[in] pwmChannel The pwm channel.
Returns DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
Low-Level Software Requirements (LLR)
Low-Level Requirement Specification: pwm_disable
Control Coupling Diagram (CCD)
ControlCouplingStructureChart
Caller
pwm_disable()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Flag)
l_t1->l_b1
pwmChannel (Flag)
r_b0->r_t0
statusCode (DriverStatus)
Control Coupling Structure Chart
Data Coupling Diagram (DCD)
DataCouplingStructureChart
Caller
pwm_disable()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Payload)
l_t1->l_b1
pwmChannel (Payload)
r_b0->r_t0
stateTelemetry (Internal State)
Data Coupling Structure Chart
Control Flow Diagram (CFD)
cfd_pwm_disable
start
Entry: pwm_disable()
guard_1
LLR_01: Guard Check
Is `pwmChannel` is greater than `PWM_CHANNEL_MAX`?
start->guard_1
err_exit_1
LLR_01 Error Exit
abort processing and return `DRV_INVALID_CHANNEL`
guard_1->err_exit_1
YES (TRUE)
guard_2
LLR_02: Guard Check
Is a driver operation reports a failure status other than DRV_SUCCESS?
guard_1->guard_2
err_exit_2
LLR_02 Error Exit
abort processing and return `retStatus`
guard_2->err_exit_2
YES (TRUE)
guard_3
LLR_03: Guard Check
Is READ_BIT(data, pwmChannel) == FALSE?
guard_2->guard_3
err_exit_3
LLR_03 Error Exit
abort processing and return `DRV_OP_ALREADY_PERFORMED`
guard_3->err_exit_3
YES (TRUE)
act_4
LLR_04: Action Step
read the device block members memory offset (PWM_BANK_CH_STATE) at physical offset `0x0078` (`MMAP_PWM_BANK_CH_STATE`) using `readPwmReg()`
guard_3->act_4
NO (FALSE)
act_5
LLR_05: Action Step
write the device block members memory offset (PWM_BANK_CH_STATE) at physical offset `0x0078` (`MMAP_PWM_BANK_CH_STATE`) using `writePwmReg()`
act_4->act_5
success_exit
LLR_06: Final Exit
return `DRV_SUCCESS`
act_5->success_exit
Control Flow Diagram
Data Flow Diagram (DFD)
dfd_pwm_disable
in_store
Input Data Sources & Parameters
• pwmDevHdl (const PwmDevHandler)
• pwmChannel (const UInt8)
proc_1
LLR_01: Data Validation Check
• Evaluate Parameter / State: pwmChannel
in_store->proc_1
Validated Input Data
proc_2
LLR_02: Data Validation Check
• Evaluate Parameter / State: retStatus
proc_1->proc_2
Validated Input Data
proc_3
LLR_03: Data Validation Check
• Evaluate Parameter / State: READ_BIT
proc_2->proc_3
Validated Input Data
proc_4
LLR_04: Data Payload Transformation
• Process payload via readPwmReg()
proc_3->proc_4
Data Payload (readPwmReg)
proc_5
LLR_05: Data Payload Transformation
• Process payload via writePwmReg()
proc_4->proc_5
Data Payload (writePwmReg)
proc_6
LLR_06: Status Output Packaging
• Format Return Payload: DriverStatus
proc_5->proc_6
Final Output Data
out_sink
Output Data Sinks & Status Return
• Status Payload (DriverStatus)
proc_6->out_sink
Output Data & Status Code
Data Flow Diagram
◆ pwm_enable()
pwm_enable.
Enable PWM channel.
Parameters
[in] pwmDevHdl The pwm device handler.
[in] pwmChannel The pwm channel.
Returns DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
Low-Level Software Requirements (LLR)
Low-Level Requirement Specification: pwm_enable
Control Coupling Diagram (CCD)
ControlCouplingStructureChart
Caller
pwm_enable()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Flag)
l_t1->l_b1
pwmChannel (Flag)
r_b0->r_t0
statusCode (DriverStatus)
Control Coupling Structure Chart
Data Coupling Diagram (DCD)
DataCouplingStructureChart
Caller
pwm_enable()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Payload)
l_t1->l_b1
pwmChannel (Payload)
r_b0->r_t0
stateTelemetry (Internal State)
Data Coupling Structure Chart
Control Flow Diagram (CFD)
cfd_pwm_enable
start
Entry: pwm_enable()
guard_1
LLR_01: Guard Check
Is `pwmChannel` is greater than `PWM_CHANNEL_MAX`?
start->guard_1
err_exit_1
LLR_01 Error Exit
abort processing and return `DRV_INVALID_CHANNEL`
guard_1->err_exit_1
YES (TRUE)
guard_2
LLR_02: Guard Check
Is a driver operation reports a failure status other than DRV_SUCCESS?
guard_1->guard_2
err_exit_2
LLR_02 Error Exit
abort processing and return `retStatus`
guard_2->err_exit_2
YES (TRUE)
guard_3
LLR_03: Guard Check
Is READ_BIT(data, pwmChannel) == TRUE?
guard_2->guard_3
err_exit_3
LLR_03 Error Exit
abort processing and return `DRV_OP_ALREADY_PERFORMED`
guard_3->err_exit_3
YES (TRUE)
act_4
LLR_04: Action Step
read the device block members memory offset (PWM_BANK_CH_STATE) at physical offset `0x0078` (`MMAP_PWM_BANK_CH_STATE`) using `readPwmReg()`
guard_3->act_4
NO (FALSE)
act_5
LLR_05: Action Step
write the device block members memory offset (PWM_BANK_CH_STATE) at physical offset `0x0078` (`MMAP_PWM_BANK_CH_STATE`) using `writePwmReg()`
act_4->act_5
success_exit
LLR_06: Final Exit
return `DRV_SUCCESS`
act_5->success_exit
Control Flow Diagram
Data Flow Diagram (DFD)
dfd_pwm_enable
in_store
Input Data Sources & Parameters
• pwmDevHdl (const PwmDevHandler)
• pwmChannel (const UInt8)
proc_1
LLR_01: Data Validation Check
• Evaluate Parameter / State: pwmChannel
in_store->proc_1
Validated Input Data
proc_2
LLR_02: Data Validation Check
• Evaluate Parameter / State: retStatus
proc_1->proc_2
Validated Input Data
proc_3
LLR_03: Data Validation Check
• Evaluate Parameter / State: READ_BIT
proc_2->proc_3
Validated Input Data
proc_4
LLR_04: Data Payload Transformation
• Process payload via readPwmReg()
proc_3->proc_4
Data Payload (readPwmReg)
proc_5
LLR_05: Data Payload Transformation
• Process payload via writePwmReg()
proc_4->proc_5
Data Payload (writePwmReg)
proc_6
LLR_06: Status Output Packaging
• Format Return Payload: DriverStatus
proc_5->proc_6
Final Output Data
out_sink
Output Data Sinks & Status Return
• Status Payload (DriverStatus)
proc_6->out_sink
Output Data & Status Code
Data Flow Diagram
◆ pwm_getCbit()
pwm_getCbit.
PWM get CBIT status.
Parameters
[in] pwmDevHdl The pwm device handler.
[out] cbitStatus The pointer of CBIT status value.
Returns DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
Low-Level Software Requirements (LLR)
Low-Level Requirement Specification: pwm_getCbit
Control Coupling Diagram (CCD)
ControlCouplingStructureChart
Caller
pwm_getCbit()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Flag)
r_b0->r_t0
statusCode (DriverStatus)
Control Coupling Structure Chart
Data Coupling Diagram (DCD)
DataCouplingStructureChart
Caller
pwm_getCbit()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Payload)
r_b0->r_t0
*cbitStatus (Output Data)
Data Coupling Structure Chart
Control Flow Diagram (CFD)
cfd_pwm_getCbit
start
Entry: pwm_getCbit()
guard_1
LLR_01: Guard Check
Is the pointer `cbitStatus` is NULL (invalid)?
start->guard_1
err_exit_1
LLR_01 Error Exit
abort processing and return `DRV_INVALID_PARAM`
guard_1->err_exit_1
YES (TRUE)
guard_2
LLR_02: Guard Check
Is a driver operation reports a failure status other than DRV_SUCCESS?
guard_1->guard_2
err_exit_2
LLR_02 Error Exit
abort processing and return `retStatus`
guard_2->err_exit_2
YES (TRUE)
guard_3
LLR_03: Guard Check
Is `i` is equal to `0U`?
guard_2->guard_3
err_exit_3
LLR_03 Error Exit
execute conditional operational branch
guard_3->err_exit_3
YES (TRUE)
guard_4
LLR_04: Guard Check
Is `bankSGClchState` is not equal to `TRUE`?
guard_3->guard_4
err_exit_4
LLR_04 Error Exit
execute conditional operational branch
guard_4->err_exit_4
YES (TRUE)
act_5
LLR_05: Action Step
read the device block members memory offset (PWM_BANK_STATUS_FAULT) at physical offset `0x0050 + (MMAP_PWM_DEV_OFFSET * i)` (`MMAP_PWM_BANK_STATUS_FAULT`) using `readPwmReg()`
guard_4->act_5
NO (FALSE)
act_6
LLR_06: Action Step
invoke bitwise routine `READ_BIT()` to extract target channel status bit from register payload
act_5->act_6
success_exit
LLR_07: Final Exit
return `DRV_SUCCESS`
act_6->success_exit
Control Flow Diagram
Data Flow Diagram (DFD)
dfd_pwm_getCbit
in_store
Input Data Sources & Parameters
• pwmDevHdl (const PwmDevHandler)
proc_1
LLR_01: Data Validation Check
• Evaluate Parameter / State: cbitStatus
in_store->proc_1
Validated Input Data
proc_2
LLR_02: Data Validation Check
• Evaluate Parameter / State: retStatus
proc_1->proc_2
Validated Input Data
proc_3
LLR_03: Data Validation Check
• Evaluate Parameter / State: i
proc_2->proc_3
Validated Input Data
proc_4
LLR_04: Data Validation Check
• Evaluate Parameter / State: bankSGClchState
proc_3->proc_4
Validated Input Data
proc_5
LLR_05: Data Payload Transformation
• Process payload via readPwmReg()
proc_4->proc_5
Data Payload (readPwmReg)
proc_6
LLR_06: Data Payload Transformation
• Process payload via READ_BIT()
proc_5->proc_6
Data Payload (READ_BIT)
proc_7
LLR_07: Status Output Packaging
• Format Return Payload: DriverStatus
proc_6->proc_7
Final Output Data
out_sink
Output Data Sinks & Status Return
• cbitStatus (PwmCbitStatus)
proc_7->out_sink
Output Data & Status Code
Data Flow Diagram
◆ pwm_getPbit()
pwm_getPbit.
PWM get PBIT status.
Parameters
[in] pwmDevHdl The pwm device handler.
[out] pbitStatus The pointer of PBIT status value.
Returns DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
Low-Level Software Requirements (LLR)
Low-Level Requirement Specification: pwm_getPbit
Control Coupling Diagram (CCD)
ControlCouplingStructureChart
Caller
pwm_getPbit()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Flag)
r_b0->r_t0
statusCode (DriverStatus)
Control Coupling Structure Chart
Data Coupling Diagram (DCD)
DataCouplingStructureChart
Caller
pwm_getPbit()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Payload)
r_b0->r_t0
*pbitStatus (Output Data)
Data Coupling Structure Chart
Control Flow Diagram (CFD)
cfd_pwm_getPbit
start
Entry: pwm_getPbit()
guard_1
LLR_01: Guard Check
Is the pointer `pbitStatus` is NULL (invalid)?
start->guard_1
err_exit_1
LLR_01 Error Exit
abort processing and return `DRV_INVALID_PARAM`
guard_1->err_exit_1
YES (TRUE)
guard_2
LLR_02: Guard Check
Is a driver operation reports a failure status other than DRV_SUCCESS?
guard_1->guard_2
err_exit_2
LLR_02 Error Exit
abort processing and return `retStatus`
guard_2->err_exit_2
YES (TRUE)
guard_3
LLR_03: Guard Check
Is `i` is equal to `0U`?
guard_2->guard_3
err_exit_3
LLR_03 Error Exit
execute conditional operational branch
guard_3->err_exit_3
YES (TRUE)
act_4
LLR_04: Action Step
read the PWM PBIT Status Register (PBIT_STATUS) at physical offset `0x0068 + (MMAP_PWM_DEV_OFFSET * i)` (`MMAP_PWM_PBIT_STATUS`) using `readPwmReg()`
guard_3->act_4
NO (FALSE)
act_5
LLR_05: Action Step
invoke bitwise routine `READ_BIT()` to extract target channel status bit from register payload
act_4->act_5
success_exit
LLR_06: Final Exit
return `DRV_SUCCESS`
act_5->success_exit
Control Flow Diagram
Data Flow Diagram (DFD)
dfd_pwm_getPbit
in_store
Input Data Sources & Parameters
• pwmDevHdl (const PwmDevHandler)
proc_1
LLR_01: Data Validation Check
• Evaluate Parameter / State: pbitStatus
in_store->proc_1
Validated Input Data
proc_2
LLR_02: Data Validation Check
• Evaluate Parameter / State: retStatus
proc_1->proc_2
Validated Input Data
proc_3
LLR_03: Data Validation Check
• Evaluate Parameter / State: i
proc_2->proc_3
Validated Input Data
proc_4
LLR_04: Data Payload Transformation
• Process payload via readPwmReg()
proc_3->proc_4
Data Payload (readPwmReg)
proc_5
LLR_05: Data Payload Transformation
• Process payload via READ_BIT()
proc_4->proc_5
Data Payload (READ_BIT)
proc_6
LLR_06: Status Output Packaging
• Format Return Payload: DriverStatus
proc_5->proc_6
Final Output Data
out_sink
Output Data Sinks & Status Return
• pbitStatus (PwmPbitStatus)
proc_6->out_sink
Output Data & Status Code
Data Flow Diagram
◆ pwm_getTemp()
pwm_getTemp.
PWM get temperature value in degree Celsius (C).
Parameters
[in] pwmDevHdl The pwm device handler.
[out] temp The pointer of temperature value in degree Celsius (C).
Returns DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
Low-Level Software Requirements (LLR)
Low-Level Requirement Specification: pwm_getTemp
Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_PWM_PWM_GETTEMP_01 HLR_PWM_30821 WHEN the pointer temp is NULL (invalid), the pwm_getTemp() function SHALL abort processing and return DRV_INVALID_PARAM . pwm.c :pwm_getTemp() Test Closed
LLR_PWM_PWM_GETTEMP_02 HLR_PWM_30821 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the pwm_getTemp() function SHALL abort processing and return that driver failure status. pwm.c :pwm_getTemp() Test Closed
LLR_PWM_PWM_GETTEMP_03 HLR_PWM_30821 WHEN preconditions are satisfied, the pwm_getTemp() function SHALL read the device block members memory offset (PWM_TEMP_RAW) at physical offset 0x0060 (MMAP_PWM_TEMP_RAW ) using readPwmReg() . pwm.c :pwm_getTemp() Test Closed
LLR_PWM_PWM_GETTEMP_04 HLR_PWM_30821 WHEN all operational processing completes successfully, the pwm_getTemp() function SHALL return DRV_SUCCESS . pwm.c :pwm_getTemp() Test Closed
Control Coupling Diagram (CCD)
ControlCouplingStructureChart
Caller
pwm_getTemp()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Flag)
r_b0->r_t0
statusCode (DriverStatus)
Control Coupling Structure Chart
Data Coupling Diagram (DCD)
DataCouplingStructureChart
Caller
pwm_getTemp()
[Low-Level Device Drivers]
Target
readPwmReg()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Payload)
r_b0->r_t0
*temp (Output Data)
Data Coupling Structure Chart
Control Flow Diagram (CFD)
cfd_pwm_getTemp
start
Entry: pwm_getTemp()
guard_1
LLR_01: Guard Check
Is the pointer `temp` is NULL (invalid)?
start->guard_1
err_exit_1
LLR_01 Error Exit
abort processing and return `DRV_INVALID_PARAM`
guard_1->err_exit_1
YES (TRUE)
guard_2
LLR_02: Guard Check
Is a driver operation reports a failure status other than DRV_SUCCESS?
guard_1->guard_2
err_exit_2
LLR_02 Error Exit
abort processing and return `retStatus`
guard_2->err_exit_2
YES (TRUE)
act_3
LLR_03: Action Step
read the device block members memory offset (PWM_TEMP_RAW) at physical offset `0x0060` (`MMAP_PWM_TEMP_RAW`) using `readPwmReg()`
guard_2->act_3
NO (FALSE)
success_exit
LLR_04: Final Exit
return `DRV_SUCCESS`
act_3->success_exit
Control Flow Diagram
Data Flow Diagram (DFD)
dfd_pwm_getTemp
in_store
Input Data Sources & Parameters
• pwmDevHdl (const PwmDevHandler)
proc_1
LLR_01: Data Validation Check
• Evaluate Parameter / State: temp
in_store->proc_1
Validated Input Data
proc_2
LLR_02: Data Validation Check
• Evaluate Parameter / State: retStatus
proc_1->proc_2
Validated Input Data
proc_3
LLR_03: Data Payload Transformation
• Process payload via readPwmReg()
proc_2->proc_3
Data Payload (readPwmReg)
proc_4
LLR_04: Status Output Packaging
• Format Return Payload: DriverStatus
proc_3->proc_4
Final Output Data
out_sink
Output Data Sinks & Status Return
• temp (Float32)
proc_4->out_sink
Output Data & Status Code
Data Flow Diagram
◆ pwm_setFrequencyDutycycle()
pwm_setFrequencyDutycycle.
Set the PWM frequency and duty cycle.
Parameters
[in] pwmDevHdl The pwm device handler.
[in] frequency The pwm frequency in Hz.
[in] dutyCycle The pwm duty cycle in percentage (0% - 100%).
Returns DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
Low-Level Software Requirements (LLR)
Low-Level Requirement Specification: pwm_setFrequencyDutycycle
Control Coupling Diagram (CCD)
ControlCouplingStructureChart
Caller
pwm_setFrequencyDutycycle()
[Low-Level Device Drivers]
Target
HZ_()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Flag)
l_t1->l_b1
frequency (Flag)
l_t2->l_b2
dutyCycle (Flag)
r_b0->r_t0
statusCode (DriverStatus)
Control Coupling Structure Chart
Data Coupling Diagram (DCD)
DataCouplingStructureChart
Caller
pwm_setFrequencyDutycycle()
[Low-Level Device Drivers]
Target
HZ_()
[Low-Level Driver Helper]
Caller:s->Target:n
l_t0->l_b0
pwmDevHdl (Payload)
l_t1->l_b1
frequency (Payload)
l_t2->l_b2
dutyCycle (Payload)
r_b0->r_t0
stateTelemetry (Internal State)
Data Coupling Structure Chart
Control Flow Diagram (CFD)
cfd_pwm_setFrequencyDutycycle
start
Entry: pwm_setFrequencyDutycycle()
guard_1
LLR_01: Guard Check
Is `dutyCycle` is greater than `PWM_DUTY_CYCLE_MAX`?
start->guard_1
err_exit_1
LLR_01 Error Exit
abort processing and return `DRV_INVALID_VALUE`
guard_1->err_exit_1
YES (TRUE)
guard_2
LLR_02: Guard Check
Is `frequency` is equal to `0`?
guard_1->guard_2
err_exit_2
LLR_02 Error Exit
abort processing and return `DRV_INVALID_VALUE`
guard_2->err_exit_2
YES (TRUE)
guard_3
LLR_03: Guard Check
Is a driver operation reports a failure status other than DRV_SUCCESS?
guard_2->guard_3
err_exit_3
LLR_03 Error Exit
abort processing and return `retStatus`
guard_3->err_exit_3
YES (TRUE)
guard_4
LLR_04: Guard Check
Is `periodLsbData` is not equal to `periodLsb`?
guard_3->guard_4
err_exit_4
LLR_04 Error Exit
abort processing and return `DRV_VALIDATE_FAILED`
guard_4->err_exit_4
YES (TRUE)
guard_5
LLR_05: Guard Check
Is `onTimeData` is not equal to `onTime`?
guard_4->guard_5
err_exit_5
LLR_05 Error Exit
abort processing and return `DRV_VALIDATE_FAILED`
guard_5->err_exit_5
YES (TRUE)
act_6
LLR_06: Action Step
invoke frequency macro `HZ_()` to compute pulse period tick count
guard_5->act_6
NO (FALSE)
act_7
LLR_07: Action Step
write the device block members memory offset (PWM_PWM_PERIOD) at physical offset `0x0008` (`MMAP_PWM_PWM_PERIOD`) using `writePwmReg()`
act_6->act_7
act_8
LLR_08: Action Step
write the device block members memory offset (PWM_PWM_ON_TIME) at physical offset `0x000C` (`MMAP_PWM_PWM_ON_TIME`) using `writePwmReg()`
act_7->act_8
success_exit
LLR_09: Final Exit
return `DRV_SUCCESS`
act_8->success_exit
Control Flow Diagram
Data Flow Diagram (DFD)
dfd_pwm_setFrequencyDutycycle
in_store
Input Data Sources & Parameters
• pwmDevHdl (const PwmDevHandler)
• frequency (const UInt16)
• dutyCycle (const UInt16)
proc_1
LLR_01: Data Validation Check
• Evaluate Parameter / State: dutyCycle
in_store->proc_1
Validated Input Data
proc_2
LLR_02: Data Validation Check
• Evaluate Parameter / State: frequency
proc_1->proc_2
Validated Input Data
proc_3
LLR_03: Data Validation Check
• Evaluate Parameter / State: retStatus
proc_2->proc_3
Validated Input Data
proc_4
LLR_04: Data Validation Check
• Evaluate Parameter / State: periodLsbData
proc_3->proc_4
Validated Input Data
proc_5
LLR_05: Data Validation Check
• Evaluate Parameter / State: onTimeData
proc_4->proc_5
Validated Input Data
proc_6
LLR_06: Data Payload Transformation
• Process payload via HZ_()
proc_5->proc_6
Data Payload (HZ_)
proc_7
LLR_07: Data Payload Transformation
• Process payload via writePwmReg()
proc_6->proc_7
Data Payload (writePwmReg)
proc_8
LLR_08: Data Payload Transformation
• Process payload via writePwmReg()
proc_7->proc_8
Data Payload (writePwmReg)
proc_9
LLR_09: Status Output Packaging
• Format Return Payload: DriverStatus
proc_8->proc_9
Final Output Data
out_sink
Output Data Sinks & Status Return
• Status Payload (DriverStatus)
proc_9->out_sink
Output Data & Status Code
Data Flow Diagram