Selamın aleyküm arkadaşlar. pwm kütüphanesini kullanmak istiyorum. değişik frekanslar kullanacağım. yalnız bir türlü hesapladığım frekansı osiloskop ekranında göremiyorum. simülasyonda düzgün.
#define USE_OR_MASKS
#include <p18cxxx.h>
#include <pwm.h>
#include <delays.h>
#pragma config FOSC=HS,WDT=OFF,LVP=OFF,CPUDIV=OSC1_PLL2
extern void _startup (void);
#pragma code REMAPPED_RESET_VECTOR = 0x1000
void _reset (void)
{
_asm goto _startup _endasm
}
#pragma code REMAPPED_HIGH_INTERRUPT_VECTOR = 0x1008
#pragma code REMAPPED_LOW_INTERRUPT_VECTOR = 0x1018
#pragma code
void main(void){
char period=0;
unsigned int duty=0;
duty=0x0F00;
SetDCPWM1(duty);
T2CONbits.T2CKPS1=1; // 1:16 TMR2 prescaler
period=0xFF;
OpenPWM1(period);
// TRISD=0x00;
while(1){
}
}
20MHz için pwm periyodu = 256*4*16(1/20*10^6) dan yaklaşık 0.8 ms çıkması gerekmez mi. bir göz atabilirmisiniz.
sorunu buldum arkadaşlar usdıv=1 yapmadım 2 saatir pll çıkışını cpudıv yapıyom