Hasta ahora pude realizar lo de la configuración del puerto serial con unos archivos que me brindaron en pdf.
A 48 MHz. del oscilador principal, 1200 Bps es un baudrate muy bajo.
Con esa frecuencia puedes usar un baurate más alto, que será más conveniente.
Para configurar el módulo EUSART, lo puedes hacer de forma muy sencilla:
Por ejemplo, para configurarlo a 9600 Bps. (Por defecto):
#use RS232 (UART1)
Con tan sólo declarar eso, ya tendrás configurado el módulo EUSART a; 9600 Bps, 8 Bits, Sin paridad, y 1 Bit de parada.
Se usarán los pines Tx y Rx correspondientes al módulo, sin necesidad de declararlos.
Para otros baudrates, sería así:
#use RS232 (UART1, BAUD = XXXX)
Y puedes agregar opciones extra, que encontrarás en el documento de ayuda del compilador.
La palabra de configuración para que el oscilador principal funcione a 48 MHz, no es correcta.
Para que funcione a 48 MHz, puedes también configurarlo de forma sencilla. (Sin declarar tantos FUSES)
#fuses NOFCMEN
#use delay(crystal = 4MHz, clock = 48MHz)
Con esas declaraciones el oscilador funcionará a 48 MHz, usando un cristal de 4 MHz.
No sé que más puedo hacer, porque lo compilo en proteus y no me hace nada .
Revisa bien tu programa y verás por qué no funciona. (Parte referente al PWM)
Asignas un valor para el registro PR2, de 74. (Ciclo activo al 100 % Frec. = 10 KHz. Fosc = 48 MHz.)
Pero usas la variable "x" para asignar el ciclo activo, la cual tiene un valor de 0, ya que no está inicializada.
La variable "x" toma un valor después, en: (
x=porcentaje*(74+1)/100; //Inicialización de Variables)
Por lo tanto, el módulo CCP1, no mostrará señal de salida alguna, aunque esté configurado.
Algo más:
No es necesario que uses un archivo con los registros FSR declarados, ya que PIC C Compiler tiene instrucciones nativas con las que puedes controlar los puertos y otras funciones del PIC.
Lo que te hace falta es estudiar más el compilador y tener en cuenta la sucesión de eventos.
Nota:
Simular a 48 MHz, produce una carga excesiva para el simulador.
Para simular, usa frecuencias bajas. Con 1MHz, 4 MHz u 8 MHz. Te irá bien la simulación.
Puedes crear rutinas para el modo de simulación y modo físico, que puedes separar y ejecutar por medio de sentencias. (Por ejemplo: #IFDEF)