Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - xiruko

#211
Cita de: leosansan en 31 Mayo 2013, 23:14 PM
Perdona que no haya mirado mucho el código, pero de entrada tienes un despiste mortal de necesidad, no has inicializado la variable i y a partir de ahí paré de mirar, sorry. Cuando pille más tiempo lo miraré más detalladamente.

De hecho en esta misma línea que comentas:

Citarwhile(frase!= '32')

O bien pones esto:
while(frase[i]!= 32)

O bien pones esto:
while(frase[i]!= ' ')

Saludos!
#212
Prueba con:

char frase[] = "Hola como estas Hola como te va Hola amigo";
char *p = frase;


Y haz con 'p' todo lo que hacías con 'frase'.

Saludos.
#213
Igual es porque te tienen manía...
#214
No tengo ni idea de licencias pero esto:

Citar6- La licencia podrá ser modificada por el equipo organizador en versiones posteriores a la de la implementación de la licencia anterior. (Un poco lioso, básicamente es que si yo le implemento una licencia, pongamos BSD, a la versión 1.0 del software que le pueda poner otra distinta a la versión 2.0)

No es un poco feo? Quiero decir, primero lo hacéis software libre, la gente colabora arreglando fallos o implementando mejoras sin ningún tipo de afán económico, y cuando vosotros queráis podéis cambiar la licencia y sacar beneficio económico?
#215
Bueno dije en teoría porque no es tan fácil que den los datos de los titulares. Para que los den se requieren de ciertas cosas como una orden judicial y que la persona que se está investigando esté imputada, como ejemplo más reciente todo lo del caso Bárcenas. Quiero decir, para que den tus datos, las autoridades ya tendrían que estar casi seguras de que tienes cuentas allí y todo tendría que estar muy demostrado para que dieran tus datos. Aun así, es muy difícil que los den, véase últimamente que dicen que toda la cúpula del PP y de otros partidos tienen cuentas en Suiza pero de momento nada está demostrado, supongo que porque Suiza no da sus datos y entonces no se puede corroborar.

En fin, que en la mayoría de los casos y a no ser que cambien las leyes (que hace poco me suena que vi en televisión que se pedía hacer una reforma para que los paraísos fiscales desaparecieran), una cuenta en Suiza sería más que segura.

Un saludo!
#216
Has oído hablar de los paraísos fiscales? Abre una cuenta en Suiza por ejemplo, y en teoría no pueden dar datos sobre las cuentas que gestionan a autoridades y demás.

O sino diría que todo el tema de los bitcoins es anónimo, aunque es algo arriesgado comprar bitcoins, su cotización se mueve como una montaña rusa.

Un saludo!

pd. Deja de ver películas sobre hackers y demás xD
#217
CitarImagínate que tienes el PORTB de la siguiente manera (PB- 0,0,0,0,0,0,0,0 - PB7). Creo que solo era en las cuatro líneas de más peso, pero bueno, nos da igual porque nos sirve. En caso de que PB0 se ponga a 1, producirá una interrupción, si PB1 se pusiera a 1 aunque PB0 también lo esté volverá a pedir interrupción y así hasta PB3 (creo que solo eran los 4 BITS de menor peso en el caso del 16F876A, mira a ver en el tuyo si tienes algo parecido...).

De qué sirve detectar un cambio en esos 4 pines? Habría que generar la frecuencia a la que quisieras el PWM fuera del micro no? Y entonces estaríamos como antes.

CitarPor otro lado... la única manera de hacerlo mediante software sería indicándole un tiempo (menor que el DUTY CYCLE del primero, o el anterior al que quieras solapar) a un TIMER para que produzca una interrupción y active la salida. el TIMER correría en segundo plano dejando libre al micro y en la interrupción gastarías no más de 4 ciclos de reloj (400nanosec). El desvío sería mínimo y podrías ajustarlo en el TIMER clavándolo casi a la perfección. El PIC solo estaría procesando cada 400 nanosegundos y el resto del tiempo podrías seguir con el programa.

Lo acabo de comprobar porque estaba convencido y me da unas 35-45 instrucciones la rutina de interrupción (3.5 - 4.5 usec), así que sí que quedaría tiempo de sobras para otras tareas. Diría que puse un 0 de más la otra vez que lo pensé... xD

Y bueno, se lo comentaré el martes a mi jefe a ver si quiere intentarlo por software, que ahora ya no sé porque no quiere hacerlo así.

CitarEn fin, jefes.

;-)

edito:

Vale, vuelvo a cambiar de opinión y creo que no sería posible hacerlo con timers por interrupciones xD

El tema es, como dije la isr estaría formada por unas 35-45 instrucciones, digamos que 40 de media y serían unos 4usec. Para tener los pulsos solapados y teniendo 4 salidas, harían falta 8 interrupciones para hacer 1 ciclo del PWM. Y teniendo en cuenta que necesitaría poder llevarlo a una frecuencia de 50KHz (20usec) pues las cuentas no dan...

Un saludo!
#218
@Firos

CitarPues ahora, solo te falta definir cómo tiene que trabajar el PIC, si no quieres hacerlo por software para que el PIC no tenga "tanto trabajo" (que sigo pensando que ese trabajo es mínimo, puesto que si configuras los timers con interrupción puedes seguir haciendo otras cosas) pues tendrás que hacerlo de forma externa.

No lo he probado, pero tratándose de que necesito una frecuencia del PWM de unos 50KHz y de que el micro trabaja a 40MHz (100 nsec/instrucción), si configurara los timers para cambiar los pines por la interrupción, el micro no pararía de entrar y salir de interrupciones. Además recuerda que dije que los pulsos deben estar solapados, por lo que en 20usec el micro debería entrar 8 veces en la rutina de interrupción para cambiar pines, y así a ojo la ISR tendrá unas 15-20 instrucciones entre contadores, cambios de pin, y otras instrucciones de control, así que los 20usec estarían casi exprimidos sin dejar al micro hacer mucho más.

CitarYo activaría las interrupciones externas en el PIC por la patilla X y me olvidaría de configurar nada más. De tal forma que cuando se detecte una variación en esa patilla saltase a una interrupción, desactivando uno de los PWM's y activando el siguiente y saldría de la interrupción. Salta otra interrupción, desactivas el PWM's activado anteriormente y conectas el siguiente (con una diferencia de menos de 1us trabajando a 8Mhz o menos si el PIC trabaja con más frecuencia). Y así en un bucle. En este caso el microprocesador esta completamente sin hacer nada, puesto que estarías esperando a una interrupción externa. [...]

Bueno esto sería complicado por el tema de que los pulsos deben estar solapados. Debería llevar algunos contadores para detectar cuando tengo que llevar un pin a alto y cuando debo llevarlo a bajo. Supongo que se podría hacer y es buena idea pero ya me han dicho que quieren evitar a toda costa el uso de circuitería de control externa al micro, así que... xD

En fin, ya me han dado otras tareas para hacer y me han dicho que me olvide de eso. De hecho ni ellos saben qué sistema van a implementar cuando en 1 mes y poco deben entregar el proyecto... Pero bueno, yo soy un mandado así que ellos sabrán.

Igualmente gracias por la ayuda, todo lo que pueda aprender mientras estoy de prácticas es más que bienvenido :D

@Meta

Te agradezco también la ayuda pero... No has leído el hilo verdad? xD

Si te fijas el programa que has puesto solo se parece a lo que había pedido porque salen las siglas PWM, pero por lo demás... Pero bueno gracias igualmente, supongo que a alguien le servirá.

Un saludo!
#219
Muchas gracias Firos, esto me será de gran ayuda. Me miraré bien estas dos alternativas a ver si puedo sorprender a mi jefe que ahora estoy en periodo de prueba... xD

Citar¿No te pide ningún tiempo de DUTY CYCLE?

Bueno no me han dicho nada sobre eso. Solo me dijo que quería los pulsos solapados, así que ya intentaré hacer algo para dejarlo en función de una variable.

CitarHaciendo una pequeña búsqueda he encontrado este: Viper50/SP

Como curiosidad, qué buscaste para dar con estos resultados? Porque estuve un rato poniendo cosas como "pwm phase shifted" ademas de "smps" y cosas así, y no encontré nada que me iluminara.

Gracias de nuevo!

edito:

CitarAunque vamos... yo antes que usar un SMPS usaría un AOP (amplificador operacional) o una puerta lógica NAND con un condensador, una resistencia y un potenciómetro para hacer un circuito oscilador (el mismo efecto que conseguimos con el SMPS) y haciéndo un cálculo mínimo ajustarle la frecuencia al tiempo que tu quieras y voalá, ya tendríamos señal externa pulsatoria para generar las interrupciones externas.

Pero a ver... el SMPS, no es más que un módulo ECCP mejorado no? Con más rapidez y precisión, y algunos modos de funcionamiento más. Entonces lo que tu me comentas de detectar interrupciones externas... Se haría el PWM por software o con el módulo SMPS? Quiero decir, al detectar la interrupción, tendría que ir cambiando los pines de salida para hacer los pulsos, o solo sería activarlo una vez y ya luego el módulo continuaría con el PWM?

No sé si me he explicado muy bien así que si necesitas que lo aclare un poco dímelo...

Un saludo!
#220
ya bueno pero es que ya me dijeron explicitamente que no lo hiciera por software asi que esa opcion esta completamente descartada.

con los temporizadores ya lo habia pensado, estoy con el pic18f458 que tiene 4 timers disponibles, aunque preferiria (si existiera) otra solucion ya que no se si luego tendre que usar alguno. bueno ya lo preguntare el martes y a ver que me dicen...

gracias por responder!