Skip to content

Instantly share code, notes, and snippets.

@mohammadfa91
mohammadfa91 / GTM_PWM_Triple_DTM.c
Created February 16, 2025 10:20
3 Phase PWM with deadtime using GTM-> ATOM, DTM
#include "components.h"
#include "SPC58NN_GTM.h"
#define CLK_ENABLE 0x2UL
/* Register CMU_CLK_EN bit */
#define SPC5_GTM_CMU_EN_CLK0 0U
#define SPC5_GTM_CMU_EN_CLK1 2U
#define SPC5_GTM_CMU_EN_CLK2 4U
#define SPC5_GTM_CMU_EN_CLK3 6U
#define SPC5_GTM_CMU_EN_CLK4 8U
#define SPC5_GTM_CMU_EN_CLK5 10U
@mohammadfa91
mohammadfa91 / SPC58NN PWM Autosar Example.c
Created January 30, 2025 08:16
PWM Generation with SPC58NN using ATMO and TOM using AUTOSAR
#include "components.h"
#include "SPC58NN_GTM.h"
#include "Reg_eSys_GTM.h"
void ATOM_config(void){
// REG_WRITE32(GTM_CMU_CLK_0_CTRL, 0x79UL);
REG_WRITE32(GTM_ATOM_CH_CTRL(0, 1), 0x00000802); /* SL=1, MODE=2 (SOMP) */
REG_WRITE32(GTM_ATOM_CH_SR1(0, 1), 5000); /* Set reload of duty to half */
REG_WRITE32(GTM_ATOM_CH_CM1(0, 1), 5000); /* Set actual duty to half */
REG_WRITE32(GTM_ATOM_CH_SR0(0, 1), 10000); /* Set reload of period */
@mohammadfa91
mohammadfa91 / SPC58NN PWM Example.c
Last active January 29, 2025 08:41
PWM Generation with SPC58NN using ATMO and TOM
#include "components.h"
#include "SPC58NN_GTM.h"
/*
* Application entry point.
*/
void ATOM_config(void){
// GTM.CMU.CLK_0_CTRL.R = 79UL;
// GTM.CMU.CLK_EN.R |= 2UL;
GTM.ATOM[0].CH[1].CTRL.R = 0x00000802; /* SL=1, MODE=2 (SOMP) */