PWM WITH PIC32MX460F512L

The topic on number crunching

PWM WITH PIC32MX460F512L

Postby sosoebot » Fri Jun 08, 2018 6:26 pm

I am trying to Generate PWM signal using PIC32MX460F512L. I want to use it to drive a motor, I am using a frequency of 10KHz. I have written the code but I tested it and it is not working. Please i would appreciate if someone can advice me on how to proceed.

Code: Select all
#include <plib.h>
#include <stdio.h>
#include <stdint.h>
#include "Cerebot.h"
#include "Lcd.h"
#include "config.h"

void initTimer();
void initOC();


int main(void)
{
   Init_Cerebot32MX();
   initTimer();
   initOC();

   _CP0_SET_COUNT(0);         // Delay 4 Seconds
   while(_CP0_GET_COUNT()< 4*40000000)
   {
      ;
   }
   
   OC1RS = 500;            // Set Duty Cycle to 50%
   TRISG = 0x0000;            // Set PORTG as output

   while(1)
   {
      PORTGbits.RG12 = 0;         // Set pin RG12 as output

   }

} //end main

void initTimer()
{
   T2CONbits.TCKPS = 1;       // Timer 2 Prescaler of 1:8
   PR2 = 999;               // Period = (PR2+1)*N*12.5ns = 100us
   TMR2 = 0;               // Initial TMR2 count is 0
   T2CONbits.ON = 1;         // Turn on Timer 2
}

void initOC()
{
   OC1CONbits.OCM = 0b110;      // PWM Mode without fault pin
   OC1RS = 250;            // Duty Cycle = OC1RS/(PR2+1) = 25%
   OC1R = 250;               // Initialize before turning OC1 on
   OC1CONbits.ON = 1;          // Turn on OC1
}
sosoebot
 
Posts: 1
Joined: Fri Jun 08, 2018 6:24 pm

Return to Microcontrollers & Embedded

Who is online

Users browsing this forum: No registered users and 0 guests