Traduccion o creacion de manual para microcontroladores AVR

Pero cual es el error o que es lo que te hace? Oye juanministrador por cierto que paso con los LCD si los vas a conseguir cuando y cuanto? porque necesito unos para un proyecto en el trabajo
 
Nope, es que habia un comentario de que en C el programa para hacer un led parpadeante ocupaba casi un kbyte, y en ensamblador 200bytes, asi que hice uno para probar y midio 204bytes ya en lenguaje maquina, claro que el retraso de tiempo lo hice con un loop y no incluyendo delay.h. Culpa mia no haber hecho cita.

Los LCD ya los pedi, pero es un envio desde China. Nunca habia yo pedido nada de por alla, asi que no tengo certeza cuanto se tarde. En cuanto lleguen te aviso. De hecho si vemos que valen la pena voy a encargar mas.
 
A ya te entendi, de hecho fui yo el del comentario, y es que es cierto, lo que pasa es que luego acostumbran mucho a usar las librerias del C y sopas el peso del programa crece como loco, aun asi lo que dices que peso tu programa que hace parpadear el Led en C ocupa mucho mas porque hecho en ensamblador te ocupara si lo haces bien compacto unos cuantos bytes.

Respecto a los LCD pues seguire esperando, pero ya no me digiste cuantos pediste y a como saldrian y lo de los AVR ya conseguiste mas que se animen a entrarle.
 
Saludos, he trabajado mucho con los PIC`s, pero no hay duda en cuanto a la potencia y flexibilidad de los AVR`s desde todos los ángulos, ya que están orientadso bajo la premisa del "Software Libre". Tengo una Guia paso a paso para AVR en español, partiendo desde cero con el ATmega8 q es el mas popular, de hecho les digo que si aprenden a trabajar con el Atmega8, aprenden a trabajar con todos los modelos, AT90xxxx, ATtinyxxx, ATmegaxxxx, ATxmegaxxx, ya sea en "Assembler", "Basic" (con BASCOM-AVR) o C (con AVRSTUDIO4)

 
Última edición por un moderador:
Hola que tal rafa387 oye a mi me intereza mucho esa info no seas mala onda pasamela no, te mande un MP con mi correo ojala no sea mucha molestia sale gracias
 
Gracias juanministrador es que al ver la hoja de datos del ATMEGA8(L) crei que el ATMEGA8L no alcanzaba velocidades mayores a 8Mhz, voy a continuar haciendo el grabador USBASP...

rafa387.
en cuanto tengas bien la PC te agradeceria uqe subas ese manual.
 
Última edición:
Yo tambien quiero ser parte de este grupo compaÑeros, ya qque el circuito que estoy haciendo sera controlado por un (atmega 32 - 16 - 8). . . Aprvechando esto, les pido de si alguien me puede ayudar con un programa que haga un conteo down que se muestre en (4) display´s desde un numero cualquiera y cuando entre una seÑal sea de un pulsador o un sensor, me incremente el tiempo en 2 veces el que estabe de igual forma si la seÑal no se dispara sigue el tiempo normal hasta que se accione. . .gracias a la persona que me pueda ayudar con este ya que apenas estoy aprendiendo sobre microcontroladores (avr). . .

Att: Gernman dario rodriguez
 
Saludos GermanDario Para poder ayudarte en una forma clara necesito preguntarte algunas cosas:

¿Que tipo de display estas usando? (anodo/catodo comun, sencillos, dobles, tetradas, etc) de ser posible indica el modelo presiso.

¿Vas a trabajar los display directamente de las salidas del ATmega o vas a usar algun Shift Register? (m74hc595 por ejemplo)

¿Necesitas ingresar el tiempo al iniciar la aplicación o tiene un tiempo preestablecido? (Considera que si quieres ingresar el tiempo habra que agregarle un teclado o algun otro metodo de adquisición).

¿Al pulsar el botón, el tiempo que se duplica es el tiempo inicial o el que se muestra al momento?

¿El tiempo lo vas a medir en segundos decimales (ejemplo 72 segundos) o en arreglo de hora (01.12)?

¿La unidad minima de tiempo a considerar sera el segundo o las decimas de seg? ¿Cual es el tiempo maximo a considerar?

Creo que seria lo mas importante hasta el momento.
 
juanministrador : HOLA, respondiendo a tus preguntas:

1) el tipo de display que voy a usar es anodo comun 7 seg. sencillos ( serian 4) dos parejas


2) utilizare 1 salida y 1 entrada del ATmega, la salida sera para los display´s por medio de lacht(74ls373) logicamente utilizando un decodificador (74ls139), y las entrada si sera por medio del ATmega que seran para dos pulsadores o mas.


3) el tiempo estara preestablecido en el programa si se quiere hacer algun cambio se debe de reprogramar el ATmega.


4) al pulsar cualquiera de los pulsadores, el tiempo que se debe de incrementar es el tiempo que continua despues de terminar el que se esta ejecutando.

Ejemplo: * para el primer par de display:

inicio en segundos (20 - 19 - 18 - 17 - 16-(puso1)- 15 - 14 - . . . - 3 - 2 - 1 - 0)

inicio incremento ( 40 - 39 - 38 - 37 - 36 - . . . - 3 - 2 - 1 - 0 )

* para el segundo par de display:

inicio en segundos (40 - 39 - 38 - 37 - 36-(puso1)- 35 - 34 - . . . - 3 - 2 - 1 - 0)

inicio incremento ( 80 - 79 - 78 - 77 - 76 - . . . - 3 - 2 - 1 - 0 )

y si se esta ejecutando el tiempo de incremento y se vuelve a pulsar, se debe de mantener el incremento, el inicio seria siempre desde 40 segundos y 80sg. . . si no se vuelve a pulsar, el inicio retomaria los 20sg para el primer par de display y 40sg para el segundo par .


5) el tiempo sera siempre en segundos


juanministrador: quiero pedirte tambien un favor, si por casualidad tienes un programa tambien para ATmega16 o 32
sobre un reloj digital a 12 horas (HH, MM, SS), con pulsadores de arreglo de hora. . .

gracias por la atencion prestada.

att: german
 
Última edición:
Orales German. Me esta costando un poco de trabajo entenderlo, dime si es correcto:

Necesitas que cada par de displays inicien un conteo diferente. Uno desde 20 a 0 y otro de 40 a cero. Si durante este conteo se recibe un pulso el siguiente conteo iniciara desde 40 para uno y 80 para el otro. ¿si se realiza en este conteo ya extendido otro pulso, este se ignora? (a sabiendas de que duplicar el conteo del segundo display llegaria a 160 y no alcanzaria un par de displays.

Esa seria la mecanica verdad?

Por otro lado no veo la necesidad del decodificador 74ls139, incluso podrias omitir el 74ls373 ya que el ATmega16/32 tienen 32 pines de I/O. Sin embargo entiendo si usas un latch por display puedes librarte del engorro de recalcular los tiempos que requeriria una salida "escaneada".

Podrias platicarnos para que es este timer?

Respecto al reloj en formato de hora que dices, no le veo problema mientras no requieras precision en el tiempo, de otro modo seria mejur usar un RTC para no errarle. Intento el programa al ratito y lo subo por la noche.
 
Saludos Amigo. Asumiendo que empezamos desde cero, te recomiendo, lo primero que tienes que hacer es contar con una herramienta para cargar los archivos " *.hex " dentro de la memoria flash de los micros. Esta herramienta se llama "Programador" y los hay de muchas formas, tipos, tamaños, económicos y super costosos. Tambien depende de la interfaz entre este y el PC, por ejemplo:

Los AVR poseen 4 formas de programarlos (Paralelo HV, ISP, Serial y JTAG), pero la mayoría de los Programadores comerciales utilizan un conector de 4 pines llamado: ISP (4 pines: MISO, MOSI, CLK y Reset), por medio del cual programaremos cualquier micro AVR, ya q todos tienen este puerto.

Tipos de Programadores:

- Programador por Puerto "Paralelo" -> (Muy Fácil de Hacer y muy Barato,
pero " NO" programan la mayoría de los AVR")
- Programador por Puerto "Serial"----------> (Medianamente Fácil de Hacer y Barato, pero "
NO programan la mayoría de los AVR" )
- Programador por Puerto "USB" -----------> (Relativamente Fácil de Hacer y No tan
barato "pero son los mejores ya que
programan la mayoría de los AVR")
- Programador por Puerto "ETHERNET", etc--> (Costosos).​

----------------------------------------------------------------------------------------

Por ejemplo un buen programador USB es el "AVR-ISP" o el "AVR DRAGON" (ambos Programadores son compatibles con el software "AVR Studio4" de Atmel.)

Si no, aquí te envío una Guía Paso a Paso, para utilizar un programador llamado "AVR-PROG", q tu mismo puedes construir si lo deseas, si no, puedes consultar en internet cualquier otro, por ejemplo, el programador Serial "PONY-PROG". (http://www.lancos.com/prog.html), pero recuerda q a veces estos programadores NO los programan todos.

Lo bueno del "AVR-Prog", es que siempre se actualiza con micros nuevos...

Ojo:

-- Descarguen la ultima version del "AVRSTUDIO4" (tienes q registrarte). Con este puedes
programar en Assembler o Lenguaje C ):
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725

-- Tambien vas a necesitar las librerias de Win-Avr:
http://winavr.sourceforge.net/download.html

-- y el Trial de" BASCOM-AVR" (para programar en BASIC, si lo deseas): http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54

... te recomiendo q bajes tambien la version 1.11.8.3, ya que puedes descargar el XXXX y ponerlo full, entonces copias la libreria del Bascom (ultima version) y lo pegas dentro de la libreriade la version 1.11.8.3 para mantenerlo actualizado. Este truquito me ha dado buenos resultado...

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Tambien existe una plataforma de desarrollo super-facil llamada "Arduino", el cual utiliza" generalmente" micros AVR de 28 pines como el Atmega8, Atmega168 y el Atmega 328p,
se programa en lenguaje C, pero hay q comprar la placa Arduino en cualquiera de sus modelos, o hacerla, comprando un Atmega328p y precargandole un programa llamado "BOOTLOADER", para que puedas conectarlo al PC ya sea por el puerto serial o USB.
Lo bueno de Arduino es que hay mucha información y tutoriales en español, ya q su creador es Latino-Español-Italiano, algo asi.

- El software arduino es 100% libre.
-Con Arduino NO necesitas programador

Visita estos Link para mas informacion de arduino:
http://www.arduino.cc/es/

Bajate este Tutorial Bio-Arduino:
todbot.com/blog/bionicarduino

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

- y por supuesto, visita las paginas siguientes, aqui encuentras cualquier informacion vital, claro, a veces en ingles, pero con el "traductor de google" es mas facil:

Tutoriales y proyectos en Españo (muy bueno), presiona AVR-MT:
http://www.olimex.cl/present.php?page=tutoriales

Full Proyectos en Basic:
http://www.mcselec.com/index.php?option=com_content&task=category&sectionid=7&id=79&Itemid=57

Proyectos basicos en Basic:
http://www.avrprojects.net/

Full Herramientas y proyectos en todos los lenguajes (tienes q registrarte):
www.avrfreaks.net/

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
Última edición:
orale juanministrador:

1) Sí necesito que cada par de Display´s comience en un conteo diferente, el primer par comienza en 20sg y el segundo par en 40sg; cuando halla una interrupcion cualquiera, sea de un pulsador y/o un sensor, el conteo que seguira despues de que termine el que se esta ejecutando, sera el conteo de interrupcion, es decir, el doble de tiempo que se ejecuta si no hay interrupcion.

ejemplo :

tiempo normal si no hay interrupcion para los dos pares de display´s: 20segundos para el primer par y 40segundos para el segundo par.

tiempo si hay interrupcion, y se cumplira despues de terminar el conteo anterior: 40sg y 80sg

NOTA: sino hay interrupcion, el conteo siempre sera 20sg y 40sg; pero si hay interrupcion, el conteo sera de 40sg para uno y 80sg para el otro par de display´s; si por casualidad ocurre otra interrupcion mientras se esta ejecutando el conteo, guarde esta interrupcion para que cuando se cumpla mantenga el conteo en 40sg y 80sg. . . solo utilizare esos dos cambios de tiempo, por lo cual solo necesito dos display´s para cada conteo.


2) el decodificador (74ls139) y los latches (74ls373) los utilizare para expandir los puertos del ATmega, para asi solo utilizar dos puertos, uno de entradas de interrupcion y el otro de salidas de conteo down (timer).


3) lo que quiero hacer con este proyecto es un control automatico accionado por los vehiculos, para el control de los tiempos de los semaforos en luz verde y luz roja, es decir, cuando halla un apilamiento de autos en uno de los crucez de alguna via, el tiempo en luz verde se incremente en este y de igual forma el de los otros cruces en luz roja se incrementa.

estos tiempos se podran ver en los display´s. De esta forma los peatones y los conductores podran ver cuando va a cambiar de rojo a verde. . .


PD: gracias por la ayuda juanministrador


ATT: German Dario
 
Pues que crees que va a ser dificil que la encuentres porque en general depende mucho del dispositivo que vallas a usar y no creo que nadien quiera hacer librerias para cada componente que utilice i2C imaginate, mejor deberias darle una leida al protocolo en la misma hoja de datos del componente que quieres utilizar, yo tengo una que hice nomas para probar un circuito que controla 8 leds y utiliza i2c dejame buscarla porque entre tantos gigas de informacion que tengo no se donde este sale
 
Atrás
Arriba