xc8 soft pwm 12f675

Başlatan nazim, 18 Aralık 2013, 07:44:59

nazim

12f675 ile yaptığım soft pwmde frekans küçükken proteusta sıkıntı yok hesapladığım değeri görebiliyorum. Ama frekans artınca proteusteki değerler çok değişik çıkıyor. Bu durum pratik uygulmada da gerçekleşir mi? Şuan elimde 12f675 yok o yüzden deneme yapamıyorum.


minimum olarak 7,6Hz olarak hesapladığımda proteusta 7/8hz görüyorum sıkıntı yok
prescaler value 1:256
TMR0=0
OSC:4MHz

maksimum olarak 41,666KHzhesapladığımda ise proteusta 13,333KHz görüyorum
prescaler value 1:2
TMR0=250
OSC:4MHz

#include <stdio.h>
#include <stdlib.h>
#include <xc.h>

// CONFIG
#pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-Up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF      // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)

#define _XTAL_FREQ 4000000      // Calisma Frekansi

void interrupt pwm_int(void)
{                                              
    TMR0=250;                    
    GPIObits.GP1=~GPIObits.GP1;
    TMR0IF=0;                   
}


void main(void) {
    GPIO=0;
    CMCON=0x07;
    ANSEL=0;
    TRISIO=0;
    OPTION_REG=0b00000000;
    INTCON=0b10100000;
    while(1){

    }
}