Menú
Foros
Nuevos mensajes
Buscar en foros
Novedades
Nuevos mensajes
Nuevos recursos
Última actividad
Recursos
Últimas revisiones
Buscar recursos
Acceder
Registrarse
Novedades
Buscar
Buscar
Buscar sólo en títulos
De:
Nuevos mensajes
Buscar en foros
Menú
Acceder
Registrarse
Install the app
Instalar
Foros
Diseño digital
Microcontroladores y sistemas embebidos
Generar señal cuadrada (PWM) con microcontrolador PIC18F25K50
JavaScript está desactivado. Para una mejor experiencia, por favor, activa JavaScript en el navegador antes de continuar.
Estás usando un navegador obsoleto. No se pueden mostrar este u otros sitios web correctamente.
Se debe actualizar o usar un
navegador alternativo
.
Responder al tema
Mensaje
[QUOTE="ivcbravola, post: 1299664, member: 527987"] Hola, buenas tardes. En el archivo user.c tengo las siguientes configuraciones. [CODE=c] INTCONbits.INT0IF = 0; //Pone la bandera del timer0, INTCON2bits.INTEDG0 = 0; //selecciono el flanco INTCONbits.INT0IE = 1; //Habilita la interrupcion del timer0 //Registros para configurar el timer0 T0CONbits.TMR0ON = 0; //Habilita el timer0 T0CONbits.T08BIT = 0; //Contador de 16 bits, la interrupcion salta al reiniciar T0CONbits.T0CS = 0; // Cuenta los pulsos del reloj interno T0CONbits.T0SE = 0; // Cuenta los flancos de subida o de bajada T0CONbits.PSA = 0; // Se le asigna un valor al prescaler T0CONbits.T0PS = 0b101; // Prescaler 1:64 T0CON = 0X00; //Escrito en hexo //Configuracion de interrupciones INTCONbits.T0IF = 0; INTCONbits.T0IE = 1; TMR0 = 0; //Empieza en 0 T0CONbits.TMR0ON = 1; // Lo prendo[/CODE] En el archivo main.c tengo. [CODE=c]int on = 0; int off = 0; /******************************************************************************/ /* Main Program */ void timer0(int on, int off); void cambio_ciclo(); void cambio_frecuencia(); void main(void) { /*Configure the oscillator for the device */ ConfigureOscillator(); /* Initialize I/O and Peripherals for application */ InitApp(); /* TODO <INSERT USER APPLICATION CODE HERE> */ while (1) { timer0(on, off); } } void timer0(int on, int off) { on++; // Incrementa el contador if (on = 100) { // Si pasaron 100ms LATAbits.LATA4 = LATAbits.LATA4 + 1; // Se hace el cambio de estado on = 0; // Reinicia el contador } TMR0 = 131; //Carga para el debordamiento en 1ms } void cambio_ciclo() { } void cambio_frecuencia(){ OSCCONbits.IRCF = 0b111 } }[/CODE] Lo que planeo hacer es que el pulsador genere las interrupciones y se ejecute cambio_ciclo y cambio_frecuencia. [/QUOTE]
Verificación
Responder
Foros
Diseño digital
Microcontroladores y sistemas embebidos
Generar señal cuadrada (PWM) con microcontrolador PIC18F25K50
Arriba