Close or Esc Key

Arduino Projects   |   Raspberry Pi   |   Electronic Circuits   |   AVR   |   PIC   |   8051   |   Electronic Projects

Generating PWM with PIC32MX460F512L

1 post / 0 new
Oteggewo Osojoh...
Oteggewo Osojoh Ebot Sidney Smith's picture
Offline
Last seen: 1 week 6 days ago
Joined: 17/06/2013 - 20:52
Generating PWM with PIC32MX460F512L

I am working on a project to generate PWM signal with PIC32MX460F512L to drive a motor. I have written the code to drive a motor with a signal of frequency 10KHz. I have tried to test my code but it is not work. I would appreciate of someone can advice me one how to proceed.

 

#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
}

]]>]]>