//Program to generate 500Khz PWM using TIMER0
//Microcontroller: Microchip PIC184520
//Language: C
//Compiler: mikroC v8.20
//Programmer: vinayak
void main (void){
TRISC = 0;
PORTC = 0;
INTCON=0b00100100; //GIE=0;TMR0IE=1;TMR0IF=1
T0CON=0b11001000; //Prescalar of 1:1
while(1)
{
void interrupt();
}
}
void interrupt (void) {
if (INTCON & (1<<INTCON.TMR0IF)) // T0 overflowed ?
{
INTCON &= ~(1<<INTCON.TMR0IF); // clear timer0 overflow bit.
}
// Fosc/4 x (Prescale) x (count to overflow) = repeat rate.
TMR0L = 0xF6;
TMR0L++; // Count 1us period
}