Hola amigos!!!
Estoy en un pequeño proyectito en el cual tengo que utilizar una señal portadora a 36khz a traves del PWM,,, solo que no eh podido configurarlo adecuadamente para sacar una señal a esta frecuencia,,, espero me puedan ayudar....
estoy utilizando un 18f4550 + cristal 12Mhz...
Aquí les dejo el código y configuraciones que estoy utilizando...
#include <stdio.h>
#include <stdlib.h>
#include <p18f4550.h> // Processor specific
#include <pwm.h> // Located in the h folder of MCC18
#include <timers.h> // Located in the h folder of MCC18
#include <delays.h>
#pragma config PLLDIV = 3 // (12 MHz crystal)
#pragma config CPUDIV = OSC1_PLL2
#pragma config USBDIV = 2 // Clock source from 96MHz PLL/2
#pragma config FOSC = HS
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRT = OFF
#pragma config BOR = ON
#pragma config BORV = 3
#pragma config VREGEN = ON //USB Voltage Regulator
#pragma config WDT = OFF
#pragma config WDTPS = 32768
#pragma config MCLRE = ON
#pragma config LPT1OSC = OFF
#pragma config PBADEN = OFF
// #pragma config CCP2MX = ON
#pragma config STVREN = ON
#pragma config LVP = OFF
// #pragma config ICPRT = OFF // Dedicated In-Circuit Debug/Programming
#pragma config XINST = OFF // Extended Instruction Set
#pragma config CP0 = OFF
#pragma config CP1 = OFF
// #pragma config CP2 = OFF
// #pragma config CP3 = OFF
#pragma config CPB = OFF
// #pragma config CPD = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
// #pragma config WRT2 = OFF
// #pragma config WRT3 = OFF
#pragma config WRTB = OFF // Boot Block Write Protection
#pragma config WRTC = OFF
// #pragma config WRTD = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
// #pragma config EBTR2 = OFF
// #pragma config EBTR3 = OFF
#pragma config EBTRB = OFF
void main(void) {
TRISC = 0;
OpenTimer2(TIMER_INT_OFF & T2_PS_1_1 & T2_POST_1_1);
OpenPWM1(250); // Period - frequency
SetDCPWM1(0b111110100);
while (1);
}
Con este código logro una señal a 12Khz a 50%... quiero lograr 36Khz a 50%