Hola nocturno disculpame por no ser tan claro. Pero pues entre ayer y hoy estuve pegado en mi pc haciendo pruebas de unas ideas que se me vinieron a la mente y queria comprobar mis ideas antes de preguntar nuevamente. hasta que por fin lo saque ( mis ideas dieron resultado), pues la primera parte que queria que es simplemente el pwm usando el oscilador interno.
este es el codigo que funciona.
/////////////////////////////////////////////////////////////////////////
//// PWM CON OSCILADOR INTERNO ////
#include <30f4011.h>
#fuses FRC,NOPROTECT,NOWDT,NOPUT
#use delay(oscillator=8000000)
#use fast_io(F)
#use fast_io(D)
#use fast_io(B)
#use fast_io(E) // PARA PERMITIRNOS CONFIGURAR MANUALMENTE
#define OSC_INTERNAL
//DECLARACIÓN DE VARIABLES Y FUNCIONES DE USUARIO//////////
signed long duty;
void IniPuertos(){
set_tris_b(0);
set_tris_e(0);
set_tris_d(0);
}
void main(){
IniPuertos();
setup_timer2(TMR_INTERNAL | TMR_DIV_BY_8, 0x1F40);
setup_compare(1, COMPARE_PWM | COMPARE_TIMER2);
delay_ms(1000);
while(TRUE){
duty=5;
set_pwm_duty(1,duty * (int16)64);
delay_ms(5000);
duty=15;
set_pwm_duty(1,duty * (int16)64);
delay_ms(5000);
duty=50;
set_pwm_duty(1,duty * (int16)64);
delay_ms(5000);
duty=100;
set_pwm_duty(1,duty * (int16)64);
delay_ms(5000);
duty=150;
set_pwm_duty(1,duty * (int16)64);
delay_ms(5000);
duty=200;
set_pwm_duty(1,duty * (int16)64);
delay_ms(5000);
duty=500;
set_pwm_duty(1,duty * (int16)64);
delay_ms(5000);
duty=2100;
set_pwm_duty(1,duty * (int16)64);
delay_ms(5000);
}
}
Ahora el siguiente paso que quiero dar es poder implementar interrupcion por cualquier metodo y usando el CCS. estare cacharreando y cualquier cosa lo publico. de antemano agradesco al que pueda colaborarme o aportar en esta nueva tarea.