TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: JOLUCI en 10 de Septiembre de 2017, 13:52:48
-
Hola amigos.
necesito generar una forma como la de la figura 1, pero sólo puedo hacerla quedar como está en la figura 2.
¿sería posible hacerlo?
estoy enviando las figuras y los archivos adjuntos.
si algún amigo puede ayudarme, estaré muy agradecido.
-
Tienes que tomar en cuenta la interrupción para ambos flancos, tanto de subida como de bajada, por cada que se detecte un flanco, dentro de la interrupción hay que configurar para detectar el flanco contrario. Una forma puede ser así (todo el código dentro de la interrupción):
lo que se hace es poner a la salida el valor detectado en el flanco, excepto para los flancos de 33 a 37 para el cambio a 1, mientras que para los flancos 38 y 39 para el cambio a 0.
/*******************************************************************************
* PROGRAMA PARA SIMULAÇÃO DE SINAIS *
*******************************************************************************/
#include <12F683.h>
#use delay(clock = 8000000)
#fuses INTRC_IO,NOMCLR,NOWDT,NOPROTECT,PUT,BROWNOUT
char saida1=0;
#int_ext
void indexador(){
saida1++;
if (saida1 >= 40) {
saida1 = 0;
}
// L_TO_H
if (input(PIN_A2)) {
if (saida1 < 32 || saida1 >= 37) {
output_high(PIN_A0);
}
ext_int_edge(H_TO_L);
}
// H_TO_L
else {
if (saida1 < 38 || saida1 >= 39) {
output_low(PIN_A0);
}
ext_int_edge(L_TO_H);
}
}
void main() {
ext_int_edge(L_TO_H); //interrupção externa na borda de descida
SET_TRIS_A (0b00000100); //configura GP2 como entrada e o resto saida
Enable_interrupts(INT_EXT); //habilita interrupção externa
Enable_Interrupts(GLOBAL); //habilita interrupção global
while(true) {
}
}
-
Gracias Geo,
me voy testar y despues retorno
-
Geo,
la señal se hizo perfecta, pero los ciclos no quedan iguales en la simulación que hice.
puede ser error del compilador o del simulador que estoy usando aquí?
ha ocurrido lo mismo con usted en la simulación?
-
me olvidé de adjuntar la figura de mi simulación.
-
Probablemente sea el simulador, pero intenta analizar el funcionamiento del programa en varios ciclos para validar que no sea problema de este.
-
Gracias Geo,
me voy testar y despues retorno.
-
Hola Geo,
la señal se quedó perfecta grabada en el pic, no tiene errores.
voy a dejar un mensaje privado para usted.
-
Hola Geo,
¿sería posible hacer más formatos de onda con otras cantidades de pulsos y poner en un código que tiene botones y display para seleccionar?
Estoy tratando de hacer aquí, pero no estoy obteniendo resultados