Hola a todos, espero que estén bien...
Soy nuevo en los foros y en la programación de PIC's, tal vez mis dudas puedan parecer tontas, pero he aprendido que preguntando se llega a Roma. Espero me puedan ayudar...
Mi principal problema es que solo he programado micros Atmel en ensamblador y necesito generar PWM en lenguaje C y con el PIC16F877A, pero tengo un par de dudas...
He visto que en CCS declaran que tipo de oscilador usarán (rc, xt, etc.), o la frecuencia del ocsilador (delay_time=xxxxx)
entre otras declaraciones, del tipo #fuse <nombre>
Yo estoy usando el compilador MPLab, (así me lo exigen para entregar el reporte correspondiente), la pregunta es
- ¿necesito estas declaraciones en MPLab (tipo de oscilador, frecuencia del oscilador,etc)? Si es así ¿como las declaro?
- Por otro lado, prácticamente ya he configurado el ciclo de trabajo y el periodo del PWM, pero no estoy seguro de como decirle al programa que quiero la salida por el CCP1 ó CCP2. ¿Esto lo hago simplemente con el TRISC <2,1> en cero?
- Necesito que se evalúe el cambio de estado de una entrada para decidir si se genera o no el PWM. Necesito utilizar interrupciones? o simplemente el declarar por ejemplo:
TRISB = 0x01; //PB0 como entrada
PORTB = 0x00; //inicio del puerto
if (PORTB == 0x01){ //evaluar cambio en puerto (PB0)
generar PWM(); //ir a la función que genera el PWM
}
else{
detener PWM(); //ir a la función que detiene el PWM en caso de haber estado habilitado
}
- Si tiene que ser por interrupciones, me podrían pasar un ejemplo?
Espero no asustarlos con tantas dudas...jiji
Soy nuevo en los foros y en la programación de PIC's, tal vez mis dudas puedan parecer tontas, pero he aprendido que preguntando se llega a Roma. Espero me puedan ayudar...
Mi principal problema es que solo he programado micros Atmel en ensamblador y necesito generar PWM en lenguaje C y con el PIC16F877A, pero tengo un par de dudas...
He visto que en CCS declaran que tipo de oscilador usarán (rc, xt, etc.), o la frecuencia del ocsilador (delay_time=xxxxx)
entre otras declaraciones, del tipo #fuse <nombre>
Yo estoy usando el compilador MPLab, (así me lo exigen para entregar el reporte correspondiente), la pregunta es
- ¿necesito estas declaraciones en MPLab (tipo de oscilador, frecuencia del oscilador,etc)? Si es así ¿como las declaro?
- Por otro lado, prácticamente ya he configurado el ciclo de trabajo y el periodo del PWM, pero no estoy seguro de como decirle al programa que quiero la salida por el CCP1 ó CCP2. ¿Esto lo hago simplemente con el TRISC <2,1> en cero?
- Necesito que se evalúe el cambio de estado de una entrada para decidir si se genera o no el PWM. Necesito utilizar interrupciones? o simplemente el declarar por ejemplo:
TRISB = 0x01; //PB0 como entrada
PORTB = 0x00; //inicio del puerto
if (PORTB == 0x01){ //evaluar cambio en puerto (PB0)
generar PWM(); //ir a la función que genera el PWM
}
else{
detener PWM(); //ir a la función que detiene el PWM en caso de haber estado habilitado
}
- Si tiene que ser por interrupciones, me podrían pasar un ejemplo?
Espero no asustarlos con tantas dudas...jiji