Skip to content

Commit

Permalink
motores apenas
Browse files Browse the repository at this point in the history
  • Loading branch information
97hackbrian committed Nov 21, 2023
1 parent 3b85305 commit 8fe9630
Show file tree
Hide file tree
Showing 6 changed files with 124 additions and 59 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,10 @@ __error__(char *pcFilename, uint32_t ui32Line)



void timer0A_handler(void);

void timer1A_handler(void);
void timer2A_handler(void);
void timer3A_handler(void);
int state=0;
uint32_t FS = 120000000/100; //frecuencia del timer
uint32_t FS2 = 120000000/100; //frecuencia del timer
Expand Down Expand Up @@ -82,26 +83,22 @@ int main(void)
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOM);// INA3,INB3,M1=PM3
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH);// ENDER,ENIZQ,M2=H2,M3=H3
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOP);// M6=PP2
//SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1);



SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
//SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER2);
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER3);

SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);


//configuracion timer0A
TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
TimerLoadSet(TIMER0_BASE, TIMER_A, FS);
IntEnable(INT_TIMER0A);
TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
TimerEnable(TIMER0_BASE, TIMER_A);
IntMasterEnable();



//configuracion timer 1A
Expand All @@ -119,6 +116,14 @@ int main(void)
TimerIntEnable(TIMER2_BASE, TIMER_TIMA_TIMEOUT);
TimerEnable(TIMER2_BASE, TIMER_A);
IntMasterEnable();

//configuracion timer3A
TimerConfigure(TIMER3_BASE, TIMER_CFG_PERIODIC);
TimerLoadSet(TIMER3_BASE, TIMER_A, FS);
IntEnable(INT_TIMER3A);
TimerIntEnable(TIMER3_BASE, TIMER_TIMA_TIMEOUT);
TimerEnable(TIMER3_BASE, TIMER_A);
IntMasterEnable();


// Configuracion del pin uart
Expand All @@ -130,6 +135,7 @@ int main(void)
//PINS ENABLES
GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, 0xF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, 0x11);
//GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, 0x01);


GPIOPinTypeGPIOOutput(GPIO_PORTL_BASE, 0xC);// PL2,PL3
Expand All @@ -151,7 +157,7 @@ int main(void)


//pwm
GPIOPinConfigure(GPIO_PF0_M0PWM0);
//GPIOPinConfigure(GPIO_PF0_M0PWM0);
GPIOPinConfigure(GPIO_PF1_M0PWM1);
GPIOPinConfigure(GPIO_PF2_M0PWM2);
GPIOPinConfigure(GPIO_PF3_M0PWM3);
Expand All @@ -170,26 +176,49 @@ int main(void)
GPIOPinTypePWM(GPIO_PORTK_BASE,GPIO_PIN_4);
GPIOPinTypePWM(GPIO_PORTK_BASE,GPIO_PIN_5);

PWMGenConfigure(PWM0_BASE,PWM_GEN_0|PWM_GEN_1|PWM_GEN_2|PWM_GEN_3,PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);



width=10000;
PWMGenConfigure(PWM0_BASE,PWM_GEN_0,PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMGenConfigure(PWM0_BASE,PWM_GEN_1,PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
//PWMGenConfigure(PWM1_BASE,PWM_GEN_1,PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMGenConfigure(PWM0_BASE,PWM_GEN_2,PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMGenConfigure(PWM0_BASE,PWM_GEN_3,PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMGenPeriodSet(PWM0_BASE,PWM_GEN_0,width);
//PWMGenPeriodSet(PWM1_BASE,PWM_GEN_1,width);
PWMGenPeriodSet(PWM0_BASE,PWM_GEN_1,width);
PWMGenPeriodSet(PWM0_BASE,PWM_GEN_2,width);
PWMGenPeriodSet(PWM0_BASE,PWM_GEN_3,width);


PWMGenPeriodSet(PWM0_BASE,PWM_GEN_0|PWM_GEN_1|PWM_GEN_2|PWM_GEN_3,100);




width=100;
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_1,width);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,width);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_3,width);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,width);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_5,width);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_6,width);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_7,width);



PWMGenEnable(PWM0_BASE,PWM_GEN_0);
PWMGenEnable(PWM0_BASE,PWM_GEN_1);
//PWMGenEnable(PWM1_BASE,PWM_GEN_1);
PWMGenEnable(PWM0_BASE,PWM_GEN_2);
PWMGenEnable(PWM0_BASE,PWM_GEN_3);



PWMOutputState(PWM0_BASE,(PWM_OUT_1_BIT),true);
PWMOutputState(PWM0_BASE,(PWM_OUT_2_BIT),true);
PWMOutputState(PWM0_BASE,(PWM_OUT_3_BIT),true);
PWMOutputState(PWM0_BASE,(PWM_OUT_4_BIT),true);
PWMOutputState(PWM0_BASE,(PWM_OUT_5_BIT),true);
PWMOutputState(PWM0_BASE,(PWM_OUT_6_BIT),true);
PWMOutputState(PWM0_BASE,(PWM_OUT_7_BIT),true);





Expand Down Expand Up @@ -305,44 +334,6 @@ int main(void)
}
}

void timer0A_handler(void)
{
TimerIntClear(TIMER0_BASE, TIMER_A);
if (flagmainMotor1==1){
if(vel[1]<0){
GPIOPinWrite(GPIO_PORTK_BASE, 0xC0, 0x40);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,vel[1]*-1);
}
else{
GPIOPinWrite(GPIO_PORTK_BASE, 0xC0, 0x80);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,vel[1]);
}


if(vel[0]<0){
GPIOPinWrite(GPIO_PORTK_BASE, 0x30, 0x10);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,vel[0]*-1);
}
else{
GPIOPinWrite(GPIO_PORTK_BASE, 0x30, 0x20);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,vel[0]);
}


if(vel[0]==0 || vel[1]==0){
GPIOPinWrite(GPIO_PORTK_BASE, 0xF0, 0x00);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,0);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,0);
}
}
else if(flagmainMotor1==0){
width=0;
GPIOPinWrite(GPIO_PORTK_BASE, 0xF0, 0x00);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,width);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,width);
}

}



Expand All @@ -363,7 +354,7 @@ void timer2A_handler(void) {
TimerIntClear(TIMER2_BASE, TIMER_A);
//GPIOPinWrite(GPIO_PORTN_BASE, 0x02, 0x02);
if (flagMosfet == 1) {
GPIOPinWrite(GPIO_PORTN_BASE, 0x02, 0x02);
//GPIOPinWrite(GPIO_PORTN_BASE, 0x02, 0x02);
GPIOPinWrite(GPIO_PORTM_BASE, 0x08, mosfet[0] ? 0x08 : 0x00);
GPIOPinWrite(GPIO_PORTH_BASE, 0x04, mosfet[1] ? 0x04 : 0x00);
GPIOPinWrite(GPIO_PORTH_BASE, 0x08, mosfet[2] ? 0x08 : 0x00);
Expand All @@ -372,3 +363,76 @@ void timer2A_handler(void) {
GPIOPinWrite(GPIO_PORTP_BASE, 0x04, mosfet[5] ? 0x04 : 0x00);
}
}

void timer3A_handler(void)
{
TimerIntClear(TIMER3_BASE, TIMER_A);

GPIOPinWrite(GPIO_PORTN_BASE, 0x02, 0x02);

GPIOPinWrite(GPIO_PORTH_BASE, 0x02, 0x02);
GPIOPinWrite(GPIO_PORTH_BASE, 0x01, 0x01);

PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,0);
//GPIOPinWrite(GPIO_PORTG_BASE, 0x01, 0x00);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,5000);

PWMPulseWidthSet(PWM0_BASE,PWM_OUT_5,5000);
//GPIOPinWrite(GPIO_PORTG_BASE, 0x01, 0x00);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_6,0);


/*
GPIOPinWrite(GPIO_PORTN_BASE, 0x02, 0x02);
GPIOPinWrite(GPIO_PORTH_BASE, 0x02, 0x02);
PWMPulseWidthSet(PWM1_BASE,PWM_OUT_1,100);
//PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,0);
GPIOPinWrite(GPIO_PORTF_BASE, 0x04, 0x0);
if (flagmainMotor1==1){
if(vel[1]<0){
GPIOPinWrite(GPIO_PORTH_BASE, 0x02, 0x02);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_1,100);
//PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,0);
GPIOPinWrite(GPIO_PORTF_BASE, 0x04, 0x0);
}
else{
GPIOPinWrite(GPIO_PORTN_BASE, 0x02, 0x02);
GPIOPinWrite(GPIO_PORTH_BASE, 0x02, 0x02);
//PWMPulseWidthSet(PWM0_BASE,PWM_OUT_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, 0x02, 0x0);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,100);
}
if(vel[0]<0){
GPIOPinWrite(GPIO_PORTH_BASE, 0x01, 0x01);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_3,vel[0]*-1);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,0);
}
else{
GPIOPinWrite(GPIO_PORTH_BASE, 0x01, 0x01);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_3,0);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,vel[0]);
}
if(vel[0]==0){
GPIOPinWrite(GPIO_PORTH_BASE, 0x01, 0x00);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_3,0);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,0);
}
else if(vel[1]==0){
GPIOPinWrite(GPIO_PORTH_BASE, 0x02, 0x00);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_1,0);
PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,0);
}
}
*/

}
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,10 @@ static void IntDefaultHandler(void);
//*****************************************************************************
extern int main(void);
//
extern void timer0A_handler(void);

extern void timer1A_handler(void);
extern void timer2A_handler(void);
extern void timer3A_handler(void);
//*****************************************************************************
//
// Reserve space for the system stack.
Expand Down Expand Up @@ -98,7 +99,7 @@ void (* const g_pfnVectors[])(void) =
IntDefaultHandler, // ADC Sequence 2
IntDefaultHandler, // ADC Sequence 3
IntDefaultHandler, // Watchdog timer
timer0A_handler, // Timer 0 subtimer A
IntDefaultHandler, // Timer 0 subtimer A
IntDefaultHandler, // Timer 0 subtimer B
timer1A_handler, // Timer 1 subtimer A
IntDefaultHandler, // Timer 1 subtimer B
Expand All @@ -114,7 +115,7 @@ void (* const g_pfnVectors[])(void) =
IntDefaultHandler, // GPIO Port H
IntDefaultHandler, // UART2 Rx and Tx
IntDefaultHandler, // SSI1 Rx and Tx
IntDefaultHandler, // Timer 3 subtimer A
timer3A_handler, // Timer 3 subtimer A
IntDefaultHandler, // Timer 3 subtimer B
IntDefaultHandler, // I2C1 Master and Slave
IntDefaultHandler, // CAN0
Expand Down

0 comments on commit 8fe9630

Please sign in to comment.