Show Posts
Pages: 1 ... 48 49 [50] 51 52 ... 64
736  International / Español / Re: #define, ahorra memoria, ¿Tiene alguna pega? on: September 06, 2011, 09:15:56 am
Quote
cuando creamos variables y apartir de cierto punto no las usamos, arduino libera ese espacio en la ram o continua ocupado?

Os dejo el camino, para que investigueis:

Gracias Igor R, parece ser que hay que usar el "malloc" para realojar la memoria dinamicamente, sino, te ves que el arduino carga todo en la flash y tira "p'alante" segun el ultimo enlace.

Los miro mas tranquilo que me cuesta bastante en ingles...

Pero gracias a las indicaciones vuestras he podido ahorrar memoria en las variables fijas. Pongo el post como solucionado.

Un saludo.

737  International / Español / Re: #define, ahorra memoria, ¿Tiene alguna pega? on: September 06, 2011, 09:02:51 am
Creo que efectivamente quizas sea ruido y no la memoria ya que le he añadido unos calculos extra (como prueba) para que me los imprima en el serial y no hay ningun problema.

+1 estoy con vosotros el tema tiene toda la pinta de ser ruido en la alimentacion por las conmutaciones.

Puedes usarl el ULN2803 un chip que veras por miles en las tragaperras para las luces, y de paso separas la alimentacion de los leds de la del arduino:


De todas formas, no es la primera vez que vemos post con problemas de interferencias en la alimentacion del arduino, igual debiamos de ponerle algun filtro o algo.

Aunque en el dibujo ponga puerto de impresora, cambialo por puerto del arduino y el zener te olvidas de el, que el esquema es para bobinas de rele pero te da lo mismo que para leds, eso si, no olvides las resistencias para limitar corriente.

Un saludo.
738  International / Español / Re: este codigo on: September 06, 2011, 01:19:57 am
hombre el echo de de que sea un codigo pic ,te agradezco la respuesta, para que sirve aun no lo se ni siquiera ,el simple echo de exponer un pequeño problema y me salgas con ejemplos didacticos de aprendizaje .......tambien ,pero estos los sabia hace tiempo en fin ..............solucionado

Bueno... me voy a poner serio.
1.- "hombre el echo de de que sea un codigo pic ,te agradezco la respuesta,"

 Si hubieras mirado lo mas basico de arduino te habrias dado cuenta que ni esas instrucciones son de arduino, ni la estructura BASICA de un funcion en arduino es esa, como bien te ha indicado Curro92, por eso el mandarte a lo basico de arduino que, por lo que veo, dices que ya sabes y me doy cuenta que no... te dejo... tu sabras lo que tienes que hacer.

2.-"para que sirve aun no lo se ni siquiera"
Hombre, pues eso es lo mejor, te encuentras un codigo por ahi, que no sabes ni para que vale, lo quieres meter en el arduino y lo primero lo sueltas en el foro para que te ayuden, ¿Porque no pruebas a meterle un programa en visual cobol? si ves que no va, no te preocupes, pregunta aqui el ¿porque?

3.-"el simple echo de exponer un pequeño problema y me salgas con ejemplos didacticos de aprendizaje"
Pues es justo la solucion a tus problemas, que por lo que veo, (esto es sensacion con respecto a tus preguntas) no tienes ni idea de lo basico de un arduino, ni lo que es ni de como se usa, porque si no seria ilogico preguntar estas cosas, por lo tanto, mi forma de ayudarte es remitirte a los conocimientos basicos que son los que te faltan, a mi entender... puedo estar equivocado... pero es lo que parece.

4.- "tambien ,pero estos los sabia hace tiempo en fin ..............solucionado"
Bueno, pues si los sabias hace tiempo, no comprendo como puedes tener esa duda, algo falla, o no lo sabes o simplemente es que te gusta postear cualquier ocurrencia.

5.- Por ultimo, vuelvo a aconsejarte las formas de uso en los foros porque veo que te dan igual, el moderador ha puesto un post en el que te da una idea de "Como hay que preguntar" "donde encontrar informacion basica"  en fin... todas las normas minimo-decentes cuando visitas un foro.

Yo por mi parte concluyo.

Como veo que mis consejos caen en "saco roto"  permiteme que pase...

Un saludo.
739  International / Español / Re: Otros cacharros on: September 05, 2011, 09:01:35 am


A ver si tienes mas tiempo que yo, que lo tengo en la caja porque si lo saco... se que me pongo con el y dejo a un lado la faena...
740  International / Español / Re: este codigo on: September 05, 2011, 12:14:23 am
POR DIOS !!  LA VIRGEN !! Y SAN JOSE ARTESANO!!

MEDINA!!

Pero es que no ves que eso es codigo de microcontrolador PIC, totalmente incompatible !!

Es como querer meterle un "botijo" al arduino y preguntar por que no funciona con el botijo!!

Botijo: 

Si aun no tienes claro eso, dudo mucho que te hayas puesto con las tres primeras respuestas.
741  International / Español / Re: #define, ahorra memoria, ¿Tiene alguna pega? on: September 04, 2011, 08:58:57 am
He sustituido las llamadas a las dos cadenas de texto fijo que tengo y no me ha variado la memoria de compilacion (la que muestra el ide) que se ha quedado en 29450.

Pero en la llamada dentro del programa a la funcion FreeRam() si que ha cambiado y antes de usar progmem, me indicaba: 4188 y ahora al usar progmem, me indica 4222, es decir, si que me ha liberado memoria de ram.

Solo tengo un problema y es que en el lcd me muestra "marcianitos" que debe ser por la conversion de tipos, pero es interesante esto del progmem, con los ejemplos no me he aclarado mucho, aunque he conseguido hacerlo funcionar.

Me uno a la pregunta de Ionhs:
 
Quote
cuando creamos variables y apartir de cierto punto no las usamos, arduino libera ese espacio en la ram o continua ocupado?
742  International / Español / Re: #define, ahorra memoria, ¿Tiene alguna pega? on: September 04, 2011, 07:03:28 am
Pues me pongo a ello...

Hago una pausa y luego continuo.

Gracias.
743  International / Español / Re: #define, ahorra memoria, ¿Tiene alguna pega? on: September 04, 2011, 06:49:57 am
Pues como siempre: Muchas gracias compañeros.

He descubierto estos cambios que tambien ahorran:
     char* cabecera2 = ("8/2011  Rev:   2");
por este otro:
     #define cabecera2 "8/2011  Rev:   2"

Obviamente, no tocare nada que en tiempo de ejecucion tenga que cambiar, pero para valores fijos veo que es interesante.

Respecto a una memoria y otra, ¿como saber cuanta consumes?

Pues la del programa esta clara, te lo dice el ide del arduino, pero ¿la otra?

Yo tengo este fragmento en el programa:
Code:
  mensaje1("Test de Sistema");    // Empezamos
  delay(1000);
  mensaje1("RAM Libre: ");       // Cantidad de Ram libre
  mensaje2("Bytes ");
  lcd.print(FreeRam());
  delay(1000);
  lcd.clear();

 que me dice:
   4188 de ram libre
¿es correcto?

AH!! segun el ide estoy consumiendo 29450 bytes de programa, estoy usando un mega pero si usara un arduino 328 que me parece esta en 32000, estaria a punto de llenarlo verdad?
744  International / Español / #define, ahorra memoria, ¿Tiene alguna pega? [solucionado, sin pegas] on: September 04, 2011, 06:19:12 am
Hola
Acabo de descubrir que emplear #define me ahorra memoria de programa, cosa que no sabia, pero tengo una duda:

  ¿Esto tiene alguna pega que se me pase por alto?

Porque he sustituido las instrucciones de este tipo: 
       int entrada_local  = 24;     // Pin para lectura de entrada de local

Por este otro:
      #define entrada_local  24     // Pin para lectura de entrada de local

Y el compilador me decia antes:
    Binary sketch size: 29872 bytes (of a 126976 byte maximum)

Y ahora me dice:
    Binary sketch size: 29462 bytes (of a 126976 byte maximum)

Eso son mas de 400 de ahorro.

La duda: ¿Tiene alguna contraindicacion?

Un saludo
745  International / Español / Re: Que Ethernet Shield comprar? on: September 03, 2011, 01:19:57 pm
¿Y si te lo haces tu?

A modo experimentacion no es muy complicado, microchip montó lo necesario para comunicar por ethernet en su chip ENC28J60, en los enlaces que te pongo podras ver como se lo han construido:

 

  http://dereenigne.org/electronics/arduino/enc28j60-breakout-board
 
  http://arian-it.blogspot.com/
 
  http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1280420867/15



añado este enlace que aunque esta hecho con PIC, a modo de informacion y conexionado puede ser interesante para aprender a manejarlo:
http://hackaday.com/2008/09/25/web-server-on-a-business-card-part-2/

746  International / Español / Re: este codigo on: September 03, 2011, 09:12:56 am
Tengo 3 soluciones a tus problemas:

   1.- http://arduino.cc/playground/Es/Consejos

   2.-

   3.-

Luego queda una que es un poco mas drastica, pero te la comento por si con las otras 3 no funciona.
Para que arduino funcione con el codigo que has puesto:

     - Alimenta el arduino con una pila de 9v.
     - eleva el conjunto  arduino - Lcd unos centimetros de cualquier base o mesa
     - con el conjunto en las manos, gira 360 grados en el sentido de las agujas del reloj
     - Miestras giras, lo mas importante: debes de repetir 15 mississipis

 Me explico, das vuelta y dices en voz alta y clara: " UN MISSISSIPI " , otra vuelta y vuelves a decir "DOS MISSISSIPIS" y asi... vamos...
no es facil, yo recomiendo las tres anteriores.

Un saludo.
   
 
747  International / Español / Re: Error al cargar bootloader a un Atmega328 on: September 03, 2011, 06:55:45 am
Que sea un ordenador antiguo da igual.

De hecho el puerto ECP + EPP que fueron los avances en paralelo (hacerlo bidireccional) si no recuerdo mal, ya estaba implantado en los 386.
Mirate en la bios del cacharro si esta activado y si esta en el 378 de direccion.

Respecto al error, parece que le estas diciendo que programe un 328 y el detecta que lo que quieres programar no es un 328.

No se si es debido a la placa final o algun error previo de programacion y te toque forzarlo de alguna manera... pero aqui me pierdo.

Un saludo.

Añado: Cuando se usa el programador paralelo, ¿como le dices que lo que tiene que hacer lo va a hacer por el puerto paralelo y no por el serie? porque cuando usas el paralelo, ya no te vale el ide del arduino, a menos que me equivoque

Mira este enlace:  http://arduino.cc/en/Hacking/Bootloader
748  International / Español / Re: programar arduino por tareas pendientes o timers? on: September 02, 2011, 09:56:50 am
Ese libro tiene muy buena pinta, ya lo tengo guardado en mi biblioteca virtual.

La frecuencia de estos procesos es larga, luego, tengo unos procesos que son mas criticos pero estan controlados.

Solo me queda una duda:
    ¿Que pasaria si precisamente un proceso se produce en el dia 50 desde que arranque el arduino?

Porque tengo una funcion muy parecida:
     while  (Tiempo < (Cronometro + 10000)){ 
     CheckCrono();
     CheckDatos(); 

Y acabo de caer en el detalle de que el millis() se resetea al dia 50, y si resulta que he cargado "Cronometro" con el valor actual de millis() y lo comparo con "Tiempo" que es el valor de millis actualizado, con lo cual y antes de que se cumpla se resetea el contador del arduino?

"cuestion critica"

Gracias IgorR

PD: Estoy intentando todo esto en diagramas de flujo antes de picarlo, porque poner un dato en el LCD, p.ej. lo puedo hacer sin un diagrama, pero esto esta de pensar bastante...
749  International / Español / Re: programar arduino por tareas pendientes o timers? on: September 02, 2011, 09:05:21 am
Muchar Gracias IgorR y LuisAntonio

LuisAntonio: Si, lo del bit a bit es lo que hace Bitread y Bitwrite, lo estoy usando en ese bucle, no ibas desencaminado, miratelo porque es muy util, y repito gracias por las ideas, todas son bienvenidas.

IgorR: Gracias de nuevo, voy a ver el codigo a ver si le saco punta.

Estaba derivandome a bucles while, en los cuales conteo el tiempo del RTC y salgo de ellos en base a break pero no me gusta no me gusta y es codigo "farragoso"

Voy a seguir y ver tu codigo a ver si se adapta bien a lo que quiero.

PD: No queria emplear el RTC para bucles porque si un dia se queda sin pila... se joroba y bloqueara (por eso en terminar esta parte voy a ver los watchdog por hardware.

Un saludo compañeros.

PD2: IgorR eres un maquina de cuidado (en el sentido bueno) mira que busco soluciones en la web y por H o por B me lleva google a un articulo tuyo en el que ya te lo has currado. (Yo de mayor quiero ser como tu).
750  International / Español / Re: programar arduino por tareas pendientes o timers? on: September 02, 2011, 04:42:04 am
No te preocupes Luis, se que es un "CACAO" .

Un saludo compañero.
Pages: 1 ... 48 49 [50] 51 52 ... 64