.estoy programando un pics 18f4620 en C con PIC C y necesito leer una señal de entrada que si dura en alto un tiempo determinado prender un led estos tiempos deben ser seleccionables por unos inerruptores (0.5seg, 1seg y 2 seg) lo debo hacer con un timer interno preferiblemente.tengo algunas ideas con los CCp y con contadores pero de verdad no se bien. POR FAVOR!!! si alguien sabe usar bien los timer y cree que me puede ayudar enviandome un programa se lo agrarecere.....

MIL DISCULPAS A TODOS!!! de verdad disculpame migsantiago me desespere y estos dias he estado mal se que no debi pagarla contigo ni con el foro bueno fue una mala actitud y no se ni porque la tome, bueno no pretendia que me lo hicieran de verdad disculpen si no quisiera hacerlo ya hubiera pagado de verdad quiero aprender pero es que llevo dias todo lo que hago no me da , aunque se que no es excusa de mi mala respuesta bueno espero tus disculpas y la ayuda que me puedan dar sera gratamente recibida.... GRACIAS por responderme la primera vez

Escrito originalmente por linda16MIL DISCULPAS A TODOS!!! de verdad disculpame migsantiago me desespere y estos dias he estado mal se que no debi pagarla contigo ni con el foro bueno fue una mala actitud y no se ni porque la tome, bueno no pretendia que me lo hicieran de verdad disculpen si no quisiera hacerlo ya hubiera pagado de verdad quiero aprender pero es que llevo dias todo lo que hago no me da , aunque se que no es excusa de mi mala respuesta bueno espero tus disculpas y la ayuda que me puedan dar sera gratamente recibida.... GRACIAS por responderme la primera vez
. BUENO REALMENTE AL QUE LE ESTABA PIDIENDO DISCULPAS ERA A MODULAY (PORFA DISCULPAME) Y GRACIAS A MAUNIX POR HACERME VER QUE LA PUSE COPIANDO EL NOMBRE DE MODULAY Y COPIE FUE EL DE MIGSANTIAGO (TIENES RAZON EN LO QUE ESCRIBISTE) AHI NO SE QUE PENA DE VERDAD..... GRACIAS Y BUENO AQUI TIENEN UNA AMIGA AUNQUE HA VECES GROCERA PERO CON TODA LA INTENCION DE APRENDER PIC VOY A ENVIAR EL CODIGO QUE LLEVO A VER LO ESTOY HACIENDO MAL GRACIAS Y DE NUEVO DISCULPEN
Escrito originalmente por linda16
AHI QUE PENA ME DA YA NI VUELVO A ESCRIBIR MAS DE VERDAD QUE PENA LA CAGUE EN FORMA HOY ME PARE PA CAGARLA YA HASTA DAÑE UN PIC. BUENO REALMENTE AL QUE LE ESTABA PIDIENDO DISCULPAS ERA A MODULAY (PORFA DISCULPAME) Y GRACIAS A MAUNIX POR HACERME VER QUE LA PUSE COPIANDO EL NOMBRE DE MODULAY Y COPIE FUE EL DE MIGSANTIAGO (TIENES RAZON EN LO QUE ESCRIBISTE) AHI NO SE QUE PENA DE VERDAD..... GRACIAS Y BUENO AQUI TIENEN UNA AMIGA AUNQUE HA VECES GROCERA PERO CON TODA LA INTENCION DE APRENDER PIC VOY A ENVIAR EL CODIGO QUE LLEVO A VER LO ESTOY HACIENDO MAL GRACIAS Y DE NUEVO DISCULPEN
asi que si no sigues siendo "grosera" seras bien recibida en el foro, sin importar si tus preguntas son básicas o avanzadas o lo que sea.
Aqui les envio dos codigo casi iguales los cuales no se si estan bien o no ; Empece con uno programita simple a ver si me da pero nada y quiesiera saber que tengo mal, bueno supuestamente segun lo que hace el programa es que leo el puerto por un segundo y si esta en alto durante ese tiempo enciende un led cosa que no hace jajaja!! bueno esto es solo como para empezar porque luego no va ha ser un led sino una salida UART que va hacia un transmisor RF, pero si no me enciende el led pues se podran imaginar lo demas.... bueno el programa lo hice usando supuestamente el timer0y que haga un conteo durante ese tiempo porque tengo que estar segura que durante ese tiempo la señal no bajo a cero y luego subio otra vez ,ademas estoy provando con los CCP en modo de CAPTURE usando los flancos de bajada subida y asi hallar los anchos pulsos pero de eso no tengo sino las inicializaciones y puras ideas en mente es decir no tengo un codigo como tal porque estoy averiguando bien como se usa los ccp.
ahora tengo que seleccionar por unos interruptores los segundos (0.5seg, 1seg 2seg y combinaciones de ellos) y si la entrada permanece en alto (bit cero del puerto C) ese tiempo prender un led (bit 0 del puerto B). aqui le envio lo que yo creo que debo hacer pero no me da nada por favor me gustaria que me dijeran que estoy haciendo mal y como puedo solucionarlo.... Gracias de antemanoCodigo:
delay_ms(500);
output_bit (PIN_B0,1);
break;
Codigo:
output_bit (PIN_B0,1);
delay_ms(500);
output_bit (PIN_B0,0);
break;
si ok mi objetivo es el siguiente tengo una entrada en el puerto c si esta entrada dura en alto los tiempos (0.5s,1s , 2s y combinaciones de los mismos) que seran seleccionados por tres interruptores entonces prendo un led no importa que no se me apague porque luego ese led va a ser una señal uart para enviarla a un transmisor rf y luego recibida por un receptor y luego a otro pic que me enviara una señal que ya lo recibio y eso sera lo que apagara la señal que estoy enviando (no se si me explique bien). pero por ahora lo que quiero es que si la entrada me dura en alto esos tiempos prenda un led..
pero no me da AYUDENMEEscrito originalmente por linda16
una Pregunta es muy dificil leer una entrada cierto tiempo (seleccionable) y luego combertirla a una señal uart para enviarla serialmente ese es todo mi problema....porfa ayudenme en lo que puedan

Codigo:
if (input(PIN_C0)==1)
{
tiempos = input_a();
switch (tiempos)
{
case (0b000000):
break;
case (0b000001): //0.5seg
delay_ms(500);
output_bit (PIN_B0,1);
break;
}
}