Autor Tema: Conmutacion-Programa  (Leído 7428 veces)

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

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 577
Re:Conmutacion-Programa
« Respuesta #15 en: 14 de Septiembre de 2021, 07:11:33 »
Publica tu código para ver el fallo.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Conmutacion-Programa
« Respuesta #16 en: 14 de Septiembre de 2021, 09:11:57 »
Hola a todos gracias por su tiempo.

El circuito de control esta alimentado con otra salida del autotransformador.

Hice un Sistema que me mida la tension en la carga porque lei que esto lo hace mas robusto si cambia la carga. Segun averigué leyendo solo la tension de entrada podría tener problemas si la carga cambia.

Logre que regule pero cuando se apaga por subtension y subo el voltaje para que vuelva a regular ya no vuelve a encender y se queda apagado aunque debiera estar regulando. Solo pasa en el corte por subtension; del corte por sobretension si retorna con normalidad. No sé si falte mejorar la regulacion.

Ese problema, me suena a que tu autotransformador, o la fuente principal de energía, tiene una impedancia de salida tan grande respeto a la carga que cuando baja el voltaje, por más que deseas amplificar, esa impedancia provoca una caída de voltaje, y por eso con sobre voltaje no tienes problemas.

Manualmente deberías conectar la salida que amplifica el voltaje cuando la entrada está baja y medir sobre la carga si el voltaje esta siendo amplificado a un valor correcto  y si la carga funciona correctamente.

« Última modificación: 14 de Septiembre de 2021, 09:16:50 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Miguelyx

  • PIC10
  • *
  • Mensajes: 30
Re:Conmutacion-Programa
« Respuesta #17 en: 15 de Septiembre de 2021, 02:10:44 »


Hola, no entiendo muy bien el problema, pero lo que si te recomiendo es no usar 'goto' en lenguaje C.



Me parece la eterna chorrada, llevo leyendo lo mismo desde que empece a programar, es un debate que no tiene fin, unos lo consideran dañino y otros esencial, pero al final me parece una cuestion de simple estetica porque no ​he visto jamas ni un solo error por usar goto en C.

Solo hace daño a la vista, pero si esta implementado es completamente funcional, es mas, la sencillez de usar goto en C es su caracteristica principal con respecto a saltar a otras partes sin goto.


Me he pasado de Basic a C hace cierto tiempo porque Basic esta mas muerto que el sumerio, pero he transformado programas de Pascal a Basic y sobre todo de C a Basic desde que me visto solo y jamas he visto que cause error alguno usar goto, ni en Basic, ni en C ni en Pascal, si alguien puede mostrarme que problemas conlleva usar goto en C que me lo diga porque yo no soy capaz a ver que problemas causa, todo lo contrario, lo encuentro muy util.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Conmutacion-Programa
« Respuesta #18 en: 15 de Septiembre de 2021, 02:44:01 »
El problema de los GOTO no es que fallen o que dejen de funcionar, la pega es que para entender un programa diseñado así hay que rastrear los saltos y, si no está muy bien hecho, es fácil perderse.
Con programación estructurada, como se propone en lenguajes como C o Pascal, todo el flujo de funcionamiento queda mucho más ordenado.

Pero para gustos, los colores. Puedes seguir usando el GOTO si lo prefieres.

Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:Conmutacion-Programa
« Respuesta #19 en: 15 de Septiembre de 2021, 06:41:30 »
El tema del GOTO arranca el día que a Dijkstra se le ocurrió escribir "Go To Statement Considered Harmful".  A partir de ahí un ejército de adoradores rechazó el GOTO con argumentos falaces como que genera un código espagueti ilegible mientras que con programación estructurada son mas legibles.  Vamos!  que un código espagueti es tan ilegible como uno estructurado donde las llaves que se abren se cierran dos páginas después, por bien indentado que esté.
La ilegibilidad no la dá el goto sino su abuso y las etiquetas poco descriptivas, y lo mismo pasa con el anidamiento excesivo de if, whiles, etc. 

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Conmutacion-Programa
« Respuesta #20 en: 15 de Septiembre de 2021, 06:44:34 »
Totalmente de acuerdo: si el programa no está bien diseñado será difícil de leer, con GOTO y o sin él.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Conmutacion-Programa
« Respuesta #21 en: 15 de Septiembre de 2021, 07:43:09 »
El tema del GOTO arranca el día que a Dijkstra se le ocurrió escribir "Go To Statement Considered Harmful".  A partir de ahí un ejército de adoradores rechazó el GOTO con argumentos falaces como que genera un código espagueti ilegible mientras que con programación estructurada son mas legibles.  Vamos!  que un código espagueti es tan ilegible como uno estructurado donde las llaves que se abren se cierran dos páginas después, por bien indentado que esté.
La ilegibilidad no la dá el goto sino su abuso y las etiquetas poco descriptivas, y lo mismo pasa con el anidamiento excesivo de if, whiles, etc.

Entonces no es tan estructurado xD

Y eso nos lleva a que si esta bien organizado el programa, el goto solo es aplicable a algunos casos nomas.
Generalmente se busca "prohibir" a aquellos nuevos en programación para que aprendan a no abusarlo y arreglen todo con goto's. Por eso mismo se da la indicación de no usarlo. Pero no quita que en algunos momento es la unica opcion viable.

Y NOS FUIMOS DEL TEMA PRINCIPAL!

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Conmutacion-Programa
« Respuesta #22 en: 15 de Septiembre de 2021, 09:05:17 »
El problema de los GOTO no es que fallen o que dejen de funcionar, la pega es que para entender un programa diseñado así hay que rastrear los saltos y, si no está muy bien hecho, es fácil perderse.
Con programación estructurada, como se propone en lenguajes como C o Pascal, todo el flujo de funcionamiento queda mucho más ordenado.

Pero para gustos, los colores. Puedes seguir usando el GOTO si lo prefieres.

Pueda que tengas razón, supuestamente bien utilizado no daría problemas. Yo en casi 11 años trabajando en sistemas embebidos con C nunca he utilizado, ni he sentido la necesidad de usarlo. Tampoco he visto en los ejemplos y las librerías del fabricante escritas en C y C++.

No conozco las propiedades del compilador PICC, tal vez el compilar NO obedece las normas establecidas para el lenguaje C y permite utilizarlo sin muchos problemas
« Última modificación: 15 de Septiembre de 2021, 09:07:47 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Miguelyx

  • PIC10
  • *
  • Mensajes: 30
Re:Conmutacion-Programa
« Respuesta #23 en: 15 de Septiembre de 2021, 11:35:11 »

Supongo que depende de la complejidad del programa, encontrar en una libreria un goto seria ya el colmo porque una libreria se compone de bastantes funciones que es facil evitar un goto porque son muy pocas lineas de pogramacion para cada funcion, pero imaginate un programa de 32k o 64k, la de programacion que hay ahi metida, seria de bastante logica que se usen gotos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Conmutacion-Programa
« Respuesta #24 en: 15 de Septiembre de 2021, 11:38:42 »
El goto es muy común en C para realizar la gestión de errores:

Código: C
  1. do_stuff(thingy) {
  2.     lock(thingy);
  3.  
  4.     foo;
  5.     if (foo failed) {
  6.         status = -EFOO;
  7.         goto OUT;
  8.     }
  9.  
  10.     bar;
  11.     if (bar failed) {
  12.         status = -EBAR;
  13.         goto OUT;
  14.     }
  15.  
  16.     do_stuff_to(thingy);
  17.  
  18. OUT:
  19.     unlock(thingy);
  20.     return status;
  21. }


Ejemplo en el código de linux (línea 19):
https://github.com/torvalds/linux/blob/master/fs/btrfs/async-thread.c
Código: C
  1. static inline void thresh_exec_hook(struct __btrfs_workqueue *wq)
  2. {
  3.         int new_current_active;
  4.         long pending;
  5.         int need_change = 0;
  6.  
  7.         if (wq->thresh == NO_THRESHOLD)
  8.                 return;
  9.  
  10.         atomic_dec(&wq->pending);
  11.         spin_lock(&wq->thres_lock);
  12.         /*
  13.          * Use wq->count to limit the calling frequency of
  14.          * workqueue_set_max_active.
  15.          */
  16.         wq->count++;
  17.         wq->count %= (wq->thresh / 4);
  18.         if (!wq->count)
  19.                 goto  out;
  20.         new_current_active = wq->current_active;
  21.  
  22.         /*
  23.          * pending may be changed later, but it's OK since we really
  24.          * don't need it so accurate to calculate new_max_active.
  25.          */
  26.         pending = atomic_read(&wq->pending);
  27.         if (pending > wq->thresh)
  28.                 new_current_active++;
  29.         if (pending < wq->thresh / 2)
  30.                 new_current_active--;
  31.         new_current_active = clamp_val(new_current_active, 1, wq->limit_active);
  32.         if (new_current_active != wq->current_active)  {
  33.                 need_change = 1;
  34.                 wq->current_active = new_current_active;
  35.         }
  36. out:
  37.         spin_unlock(&wq->thres_lock);
  38.  
  39.         if (need_change) {
  40.                 workqueue_set_max_active(wq->normal_wq, wq->current_active);
  41.         }
  42. }
« Última modificación: 15 de Septiembre de 2021, 11:42:35 por Picuino »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Conmutacion-Programa
« Respuesta #25 en: 15 de Septiembre de 2021, 11:38:51 »

Supongo que depende de la complejidad del programa, encontrar en una libreria un goto seria ya el colmo porque una libreria se compone de bastantes funciones que es facil evitar un goto porque son muy pocas lineas de pogramacion para cada funcion, pero imaginate un programa de 32k o 64k, la de programacion que hay ahi metida, seria de bastante logica que se usen gotos.

Nunca los he visto, por ejemplo las librerías de la pila TCP/IP son enormes y nunca me he topado con goto. En xc32 son abiertas, y simplemente buscando en todo el proyecto la palabra clave 'goto' se puede encontrar y no aparecen.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Conmutacion-Programa
« Respuesta #26 en: 15 de Septiembre de 2021, 11:45:23 »

Supongo que depende de la complejidad del programa, encontrar en una libreria un goto seria ya el colmo porque una libreria se compone de bastantes funciones que es facil evitar un goto porque son muy pocas lineas de pogramacion para cada funcion, pero imaginate un programa de 32k o 64k, la de programacion que hay ahi metida, seria de bastante logica que se usen gotos.

Tienes razón, pensé que no se utilizaban. Pero personalmente, nunca he sentido la necesidad de utilizarlas, y como siempre he dicho, si puedes crear un producto comercial estable, de calidad y lo más económico para obtener ganancias, no importa como lo hagas.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Eduardo Rodas

  • PIC12
  • **
  • Mensajes: 62
    • Kit electronica
Re:Conmutacion-Programa
« Respuesta #27 en: 15 de Septiembre de 2021, 12:19:40 »


porque Basic esta mas muerto que el sumerio
[/quote]

Uso Basic después de dejar el ensamblador y la verdad es que Basic me permitió hacer todo lo que antes no podía hacer. Exactamente uso PROTON IDE y es genial, no perfecto pero si bastante bueno y fácil de aprender ... me sorprende que poca gente lo use.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Conmutacion-Programa
« Respuesta #28 en: 15 de Septiembre de 2021, 12:25:47 »
Por desgracia el basic se sigue siendo muy popular.
Visual Basic aparece 2 veces en el índice de popularidad de Tiobe entre los 20 primeros lenguajes de programación.

 

* basic.png
(57.16 kB, 650x935 - visto 265 veces)


https://www.tiobe.com/tiobe-index/

Desconectado Miguelyx

  • PIC10
  • *
  • Mensajes: 30
Re:Conmutacion-Programa
« Respuesta #29 en: 15 de Septiembre de 2021, 13:28:59 »





Uso Basic después de dejar el ensamblador y la verdad es que Basic me permitió hacer todo lo que antes no podía hacer. Exactamente uso PROTON IDE y es genial, no perfecto pero si bastante bueno y fácil de aprender ... me sorprende que poca gente lo use.

Yo ya no lo uso tanto por 2 temas, realmente no he dejado de usarlo, pero hay que evolucionar aunque sea tarde, 1º por un simple tema de velocidad, todas las funciones rutinas o lo que tengas en un programa en Basic, con el mismo programa en C se ejecuta bastante mas rapido, pero bastante.
Y 2º por la cantidad de usuarios que usan uno u otro, decir que esta mas muerto que el sumerio es evidente que es una exageracion de la realidad pero es algo que sucede dia a dia, cada dia son menos los que usan Basic y mas los que usan C, y en la facilidad de usar Basic te doy toda la razon, es de una simpleza tan sorprendente que es raro que no se haya impuesto al resto, pero bueno, en nuestro mundo es asi, cuanto mas facil, menos interesa.