Autor Tema: interesante (proyecto con pic y led)  (Leído 57699 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: interesante (proyecto con pic y led)
« Respuesta #105 en: 04 de Septiembre de 2008, 16:51:51 »
y a ese chamaco tápale la bocota :D :D :D
:D :D :D

Lo que podria hacer Karina si no entendi mal es:

1ro Una rutina que active el conteo con su FOR, esto activado por el profe.
2do En esa rutina dentro del For meter un IF que evalue el estado de los botones de los "escuincles" para cuando alguien lo active se salga del for. algo como:

main:
'rutinas nose nose nose
if boton0=0 then Activado 'el boton lo activo el profe
goto main

Activado:
For i=0 to n
 .....'tu rutina
......'tu rutina
IF Boton1=0 Or Boton2 =0 'suponiendo que se activan en bajo
 goto exit
endif
next i

Exit:
'tu rutina para mostrar el dato de i o lo que quieras
If reset=0 then main

Saludos
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #106 en: 04 de Septiembre de 2008, 17:09:00 »
Haber si entiendo el Prof. presiona el botón porque hay un tiempo límite para responder la pregunta?????
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado KARINA83

  • PIC12
  • **
  • Mensajes: 50
Re: interesante (proyecto con pic y led)
« Respuesta #107 en: 04 de Septiembre de 2008, 17:37:22 »
exacto el profe dice la pregunta y presiona el boton entonces los leds comiensan a encender
si un escuincle preciona boton1 o boton2 entonces se detiene el proceso,se quedan encedidos los leds que ya fueron encendidos es decir: si el chamaco contesto
a los 33seg los leds quedarian asi :000011111 y se enciende el ledgana1 o el ledgana2 y asi se queda hasta que el profe vuelva a precionar.
ora que si los chamacos no saben la respuesta se encienden los 10 leds y parpadean unas 10 veces y se apagan y queda listo para que otra vez precione el profe.

       time = 6000
       delay = time
        led = 1
         DelayMS time
        led1 = 1
         DelayMS time
        led2 = 1
         DelayMS time
        led3 = 1
         DelayMS time
        led4 = 1
         DelayMS time
        led5 = 1
         DelayMS time
        led6 = 1
         DelayMS time
        led7 = 1
         DelayMS time
        led8 = 1
         DelayMS time
         led9 = 1

         GoSub delay
         
delay:         
     
       
           For x=0 To 10     
           PORTB = 255
           PORTD = 24
           DelayMS 200
           PORTB = 0
           PORTD = 0
           DelayMS 200
           Next         
         
         GoTo inicio

saludos  :g)
Las mujeres podemos cambiar al mundo.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: interesante (proyecto con pic y led)
« Respuesta #108 en: 04 de Septiembre de 2008, 17:39:38 »
mmm nadie me escucha jajajaja :D mira lo que te escribi es practicamente el concepto que acabas de poner
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado KARINA83

  • PIC12
  • **
  • Mensajes: 50
Re: interesante (proyecto con pic y led)
« Respuesta #109 en: 05 de Septiembre de 2008, 13:04:23 »
hola navaismo si te escuche solo que asi ya lo habia intentado y lo que pasa es lo siguiente: el pfofre preciona su boton y comiensa la secuencia si el escuincle presiona rapidamente no pasa nada nesecita dejar precionado hasta que ternine su secuencia ese led, entonces si sale de esa rutina y se va a la otra.
lo que se ocupa es que cuando cualquiera de los 2 escuincles precione en ese instante salga de esa rutina y salte a la otra.
lo que pasa es (ayyyy esos profes y en particular mi hermanito )que la calificacion la dan dependiendo de hasta que led presionen por ejemplo :

los leds = 1111111111 calif=0 (paso 1 min y no supieron)
los leds = 0111111111 calif=1 (pasaron mas de 54 seg para precinar)
los leds = 0011111111 calif=2 (pasaron mas de 48 seg para precinar)
los leds = 0001111111 calif=3 (pasaron mas de 42 seg para precinar)
..........................................
los leds = 0000000000 calif=10 (pasaron menos de 6 seg para precinar ,por eso lo del primer delalms 6000)


saluditos  :g)


y una pregunta que sucedio con el ultimo post de firepic ya no esta,
 lo abducieron los extraterrestres?
bye.
Las mujeres podemos cambiar al mundo.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: interesante (proyecto con pic y led)
« Respuesta #110 en: 05 de Septiembre de 2008, 13:44:17 »
No se lo que le haya pasado al mensaje de FirePic.

Mira con lo que te comentaba se puede sin problemas, te dejo este ejemplo que prende cada 600mS los pines del PORTB si alguien presiona el switch 1 o 2 se sale parando el conteo dejando encendido el PORTB un segundo y limpiandolo despues. A ver si te sirve.

Código: FreeBasic
  1. '****************************************************************
  2. '*  Name    : UNTITLED.BAS                                      *
  3. '*  Author  : Navaismo                                          *
  4. '*  Notice  : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
  5. '*          : All Rights Reserved                               *
  6. '*  Date    : 05/09/2008                                        *
  7. '*  Version : 1.0                                               *
  8. '*  Notes   :                                                   *
  9. '*          :                                                   *
  10. '****************************************************************
  11. Device 16F84A
  12.  XTAL=4
  13. TRISA=31
  14. TRISB=0
  15. PORTA=0
  16. PORTB=0
  17.  
  18. Dim i As Byte
  19. Dim prof As PORTA.0
  20. Dim alu1 As PORTA.1
  21. Dim alu2 As PORTA.2
  22.  
  23. main:
  24.  If prof=1 Then
  25.   GoTo cont
  26.  EndIf
  27. GoTo main
  28.  
  29. cont:
  30.  For i=0 To 8
  31.   Select Case i
  32.    Case 0: PORTB.0=1: If alu1=1 Or alu2=1 Then exit
  33.    Case 1: PORTB.1=1: If alu1=1 Or alu2=1 Then exit
  34.    Case 2: PORTB.2=1: If alu1=1 Or alu2=1 Then exit
  35.    Case 3: PORTB.3=1: If alu1=1 Or alu2=1 Then exit
  36.    Case 4: PORTB.4=1: If alu1=1 Or alu2=1 Then exit
  37.    Case 5: PORTB.5=1: If alu1=1 Or alu2=1 Then exit
  38.    Case 6: PORTB.6=1: If alu1=1 Or alu2=1 Then exit
  39.    Case 7: PORTB.7=1: If alu1=1 Or alu2=1 Then exit
  40.   End Select
  41.   DelayMS 600
  42.   If alu1=1 Or alu2=1 Then exit
  43.  Next i
  44.  
  45. exit:
  46. DelayMS 1000
  47. PORTB=0
  48. GoTo main


Saludos
     
« Última modificación: 05 de Septiembre de 2008, 13:46:19 por navaismo »
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado KARINA83

  • PIC12
  • **
  • Mensajes: 50
Re: interesante (proyecto con pic y led)
« Respuesta #111 en: 05 de Septiembre de 2008, 18:46:31 »
navaismo muchas gracias por tus ejemplos pero la verdad sigue sin funcionar como yo quisiera el problema es que cuando alguno de los 2 escuincles preciona rapido no pasa nada se debe esperar precionando el boton de 1 a 6 seg para que salga de cont y entre a exit,  lo que ocupo es que  cuando se precione un boton el micro deje de hacer lo que este haciendo(no esperar nada) y salte a exit.

si si ya se soy una latosa   :D
saludos  :g)
Las mujeres podemos cambiar al mundo.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: interesante (proyecto con pic y led)
« Respuesta #112 en: 05 de Septiembre de 2008, 19:53:07 »
En la realidad no tarda tanto, lo estas simulando? si deseas puedes usar una interrupcion para eso.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #113 en: 05 de Septiembre de 2008, 20:11:11 »
Pues bien después de analizar a detalle tu programa esta todo muy mal, me da justo ver que as estado leyendo e intentas incorporar cosas nuevas, como lo son los procesos de interrupción pero como nos pasa a todos al principio esta mal configurado la rutina para una interrupción por taimer implica muchas cosas como por ejemplo hay que cargar el pre escaler
El propio registro de contador vamos hay que calcular el tiempo en que el mismo se va a desbordar y diseñar la rutina de interrupción la cual debe ser tan breve como un suspiro,
El 16f877 tiene puertos que por defecto son analógicos y para poder utilizarlos como entrada salida hay que configurarlos como digitales.
En conclusión mal mal muy mal sinceramene  ni siquiera entiendo que funcione.
Bueno primero necesito que me expliques bien  a detalle el procedimiento del concurso
Segundo empieza todo de cero para esto no es necesario utilizar interrupciones ni el tmr los tiempos no necesitan exactitud así que no los utilices lo vamos a resolver con lo que hemos visto asta ahora en muy pocos casos es necesario recurrir a una interrupción a demás de que para esto hay que tener cierto nivel de aprendizaje.
Y por favor siempre que pongas un ejercicio sube también la simulación en proteus por que a mí me da mucha flojera armar los circuitos.
prefiero armar los ctos en un protoboard pero por ahora no me es posible por que mi programador sé auto destruyo.
Así que como te dije esto  va requerir  tiempo al ser una aplicación real hay que ponerla a punto espero que tu hermanito no aya dicho que eres una súper experta y que mañana estaría listo.
No te preocupes realmente no es una aplicación muy complicada pero si requiere tiempo
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #114 en: 05 de Septiembre de 2008, 20:31:32 »
Hola paisano que bueno verte por aquí eres de los pocos que no tiene miedo a estar entre mujeres.
Karina esta mirando que para visualizar el tiempo la mejor opción es un lcd 2x16  o de menos con displey de 7 segmentos por que representar el tiempo con un puerto del pic enrolla mucho el asunto y en muchos casos no va a alcanzar
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado KARINA83

  • PIC12
  • **
  • Mensajes: 50
Re: interesante (proyecto con pic y led)
« Respuesta #115 en: 05 de Septiembre de 2008, 20:50:34 »
hola,hola pues les dejo el software y el hardware (en proteus)
este funciona bien pero tengo el problema hay que  dejar precionado el boton hasta que termina la secuencia del led en turno.


bye bye  :g)
« Última modificación: 05 de Septiembre de 2008, 20:57:24 por KARINA83 »
Las mujeres podemos cambiar al mundo.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: interesante (proyecto con pic y led)
« Respuesta #116 en: 05 de Septiembre de 2008, 20:50:35 »
Se me hace raro ver un programa que no utilice las interrupciones. De todas formas he realizado la traducción a mi lenguaje, solo son pequeñas diferencias. Y una vez traducido, le he añadido una pequeña rutina que simula un timer o base de tiempos. Hace lo mismo que un delay pero permite seguir ejecutando código mientras se realiza la pausa sin usar interrupciones que supongo pertenecen a un nivel un poco superior al actual desarrollo del hilo.

De todas formas como consejo en los lenguajes de altonivel no se suelen utilizar los saltos absolutos ni tampoco los pauses, delays, waits, etc.

El programa respetando la programacion basica del original:

Código: Visual Basic
  1. '****ARREGLO, SOLO SIMULACION*************************************
  2. '* Name : UNTITLED.BAS *
  3. '* Author : Navaismo *
  4. '* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
  5. '* : All Rights Reserved *
  6. '* Date : 05/09/2008 *
  7. '* Version : 1.0 *
  8. '* Notes : *
  9. '* : *
  10. '****************************************************************
  11. 'Device 16F84A
  12. 'xtal = 4
  13. '---------------
  14. 'Define SIMULATION_WAITMS_VALUE = 1  'Ignora los valores de Waitms
  15. '---------------
  16. AllDigital
  17. TRISA = 31
  18. TRISB = 0
  19. PORTA = 0
  20. PORTB = 0
  21. '---------------
  22. Dim i As Byte
  23. Dim pause As Word  'establece el tiempo de pausa
  24. Dim timer1 As Word  'contador,  hace la  pausa
  25. '---------------
  26. Symbol prof = PORTA.0
  27. Symbol alu1 = PORTA.1
  28. Symbol alu2 = PORTA.2
  29. '---------------
  30. main:
  31.         If prof = 1 Then Goto cont
  32. Goto main
  33. End                                              
  34. '---------------
  35. cont:
  36.         For i = 0 To 8
  37.                 Select Case i
  38.                         Case 0
  39.                                 PORTB.0 = 1
  40.                                 If alu1 = 1 Or alu2 = 1 Then Goto eexit
  41.                         Case 1
  42.                                 PORTB.1 = 1
  43.                                 If alu1 = 1 Or alu2 = 1 Then Goto eexit
  44.                         Case 2
  45.                                 PORTB.2 = 1
  46.                                 If alu1 = 1 Or alu2 = 1 Then Goto eexit
  47.                         Case 3
  48.                                 PORTB.3 = 1
  49.                                 If alu1 = 1 Or alu2 = 1 Then Goto eexit
  50.                         Case 4
  51.                                 PORTB.4 = 1
  52.                                 If alu1 = 1 Or alu2 = 1 Then Goto eexit
  53.                         Case 5
  54.                                 PORTB.5 = 1
  55.                                 If alu1 = 1 Or alu2 = 1 Then Goto eexit
  56.                         Case 6
  57.                                 PORTB.6 = 1
  58.                                 If alu1 = 1 Or alu2 = 1 Then Goto eexit
  59.                         Case 7
  60.                                 PORTB.7 = 1
  61.                                 If alu1 = 1 Or alu2 = 1 Then Goto eexit
  62.                 EndSelect
  63.                 pause = 600  'carga el tiempo a contar en el timer
  64.                 Gosub m_pause  'salto con retorno a mi rutina de pausa
  65.                 If alu1 = 1 Or alu2 = 1 Then Goto eexit
  66.         Next i
  67. '-----------------
  68. eexit:
  69.         WaitMs 1000
  70.         PORTB = 0
  71.         Goto main
  72. '-----------------
  73. m_pause:  'rutina de pausa especial, timer por soft
  74.         timer1 = 0  'inicializa contador
  75.         While timer1 < pause  'mientras se de la comparacion
  76.                 WaitMs 1  'pausa, base de tiempos de referencia 1mSeg.
  77.                 timer1 = timer1 + 1  'incrementa contador, lleva el tiempo
  78.                 If alu1 = 1 Or alu2 = 1 Then timer1 = pause  'si es cierto termina while
  79.         Wend  'acota el while
  80. Return  'retorna al programa

PD. Delayms = Waitms. La etiqueta EXIT es una palabra reservada en mi lenguaje asi que la cambie por EEXIT. No puedo hacer un salto a una etiqueta
sin especifica el tipo de salto. No puedo usar DIM en un puerto en este caso tengo que usar SYMBOL.
« Última modificación: 08 de Septiembre de 2008, 20:33:45 por dogflu66 »
Saludos desde Granada, España.

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #117 en: 06 de Septiembre de 2008, 11:32:59 »
Pues antes que nada señor don can  :D :D agradecerle que sé allá tomado la molestia de mirar este humilde hilo que asu altura asta le a de causar flojera.
Esta de mas felicitarle por el excelente desarrollo que nos a echa favor de aportar y si no le causa mucha molestia me aria un grandísimo favor si pudiera extendernos el consejo  de su
Ultima línea.

De todas formas como consejo en los lenguajes de altonivel no se suelen utilizar los saltos absolutos ni tampoco los pauses, delays, waits, etc.

Ase mucho tiempo que sé que esto debe ser así pero no se como manejarlo ni encuentro
Información al respecto por lo cual mis desarrollos son deficientes
Un abraso
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: interesante (proyecto con pic y led)
« Respuesta #118 en: 06 de Septiembre de 2008, 14:04:35 »
A una buena solucion master Carlos, anoche entre sueños estaba pensando en poner el for para la pausa con el if dentro para que incluso en la pausa lo puedan sacar me ganaste, jeje que bueno.

Paisana aun te tengo guardados esos CD's si anadas por el DF me ae que me descuelgo y te los llevo, y a quien no le va a gustar entre brujeres ups perdon mujeres. Sobre lo del LCD no se que le convenga mas en cuestion de money si un LCD o un display.

Saludos
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #119 en: 06 de Septiembre de 2008, 21:11:13 »
Carina  como podrás ver el programa fue ya resuelto muy bien.  tu problema básicamente es que mientras tu programa esta ejecutando los delay´, el pic no se da cuenta de que  un botón esta pulsado por eso tienes que mantener el botón pulsado asta que el pic sale del delay y darse cuenta que el botón esta pulsado. .
Me estoy dando cuenta que eres algo terca y eso me enoja mucho, ase un tiempo te sugerí que buscaras un delay en asm y lo estudiaras, con la finalidad de que te dieras cuenta que mientras el pic esta ejecutando un delay esta en unos bucles anidados; dijamos que esta siego y sordo asta que sale de el.
También te dije que en el pic 16f877 el  puerto a esta configurado  como entradas analógicas y que para poder utilizarlo como entradas, o salidas hay que configurarlo como puerto digital..
Atra cosa que tal vez  por la falta de experiencia y no es que yo tenga mucha,  es que un pic mal programado funciona de manera errática,  puede que parezca que esta haciendo lo que tu quieres cuando en realidad sus respuestas son el resultado de quien sabe que diablos.
Ahora sin la más mínima intención de ofenderte  alfin de cuentas en esto yo no me gano nada más que la oportunidad de ayudar,  simule tu programa y  no funciona.
Como te mencione hay que comenzar todo de nuevo yo se que no es fácil  porque después de dedicarle tiempo resulta que hay que volver atrás y es frustrante  pero en este caso se me adelantaron y ya te mostraron el camino así que a trabajar.
Y me disculpo si te soné demasiado dura pero entre amigos no hay otra forma de decir las cosas.
Un abraso.
Navaismo no te preocupes ya abra  oportunidad para los discos ahora que mi servicio privado de mensajera Express ha vuelto a funcionar
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas


 

anything