Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

26/08/2009 #41

Avatar de Meta

Está bueno el entrenador. Por casualidad. ¿Puedes incluir también el .hex? Yo de GCC no entiendo nada.
26/08/2009 #42


Se me ha olvidado decir algo importante, la configuracion de los puertos como entrada o salida se hace justo al contrario que en los pic

DDRB=0xFE o dicho de otra forma DDRB=0x11111110 significa que el pin 0 del PORTB es de entrada y el resto de salida.


Ahi tienes el hex, el programa esta comprado asi que no deberia fallar
26/08/2009 #43

Avatar de Meta

Pues si es importante. Pues los PIc son así para no olvidar.

esta idea no se olvida nadie.

0 = Out
1 = In
26/08/2009 #44


piensa en 0 como un agujero por el que entran los datos y el 1 como en una flecha que lanza los datos quizas te ayude
26/08/2009 #45

Avatar de Meta

Se entiende, se entiende ejejejejej

Por cierto, ya me funciona el circuito. Los voy a guardar todos los que publiques. Poco a poco a coger ideas. He visto que en WinPic800 está el AT90S2313.

Si van a subir archivos grandes. Que sepan que pueden subirlo desde SkyDrive que es lo mismo que vuestras cuentas de Hotmail

Puedes subir cada archivo a 50MB, lo mejor de todo que no se caduca como RapidShared, MegaLoad, etc...


26/08/2009 #46

Avatar de mecatrodatos

Que tal amigos siguiendo la sugerencia de nuestro moderador les dejo primer proyecto en microcontrolador avr ATmega 16 he aqui el codigo fuente en C :

Código:
/*****************************************************
Projecto 1 :
Secuenciador de luz por el puerto D , donde se encienden consecutivamente
leds ubicados en el pueto D del chip Atmega16 de derecha a izquierda y viceversa
Autor  : Mecatrodatos
microcontrolador : ATmega16
Oscilador Externo : 4.000000 MHz
*****************************************************/

#include<mega16.h>
#include<delay.h>
#define xtal 4000000

int i;

void main (void)
{
    
    DDRD = 0xFF;
    
    while(1)
    {
    
        for(i = 1; i <= 128; i = i*2)
        {
            PORTD = i;
            delay_ms(100);
        }    
            
        for(i = 128; i > 1; i = i/2)
        {
            PORTD = i;
            delay_ms(100);
        }    
        
    }
    
}

Dejo simulacion en proteus 7.5, codigo fuente en C , y .hex en archivo adjunto espero sea de utilidad.
Archivos Adjuntos
Tipo de Archivo: zip PROYECTO1.zip (42,6 KB (Kilobytes), 144 visitas)
27/08/2009 #47


la configuracion de los puertos

Los registros DDRA, DDRB, DDRC y DDRD, son los registros de Dirección de Datos y sirven
para configurar cada pin del puerto DDRx Sirve para decir que patitas son de entrada o salida
como entrada (con el valor 0)
como salida (con el valor 1).

Los registros PORTA, PORTB, PORTC y PORTD, son los registros de SALIDA/Modo Eléctrico y
cada bit esta asociados a un pin del puerto.

Si el bit del puerto está configurado como salida en DDRA, DDRB, DDRC o DDRC, lo que sea escrito en el bit equivalente de
colocará en el pin asociado PORTA, PORTB, PORTC o PORTD (ya sea 1 o sea 0), se
colocará en el pin asociado del puerto correspondiente (5 Vcc ó 0 Vcc).

Si el bit está configurado como entrada,entonces el bit de este registro nos permite configurar el modo de
funcionamiento “eléctrico” del bit (0 sería Alta Impedancia, y 1 sería Resistencia al positivo).

cada pin de cada puerto posee una resistencia de pull-up activable
poniendo el pin en question en entrada (Registro DDRx)
y poniendo a nivel logico a 1 (PORTx)

ejemplo:

DDRA = 10101010 = Sirve para decir que patitas son de entrada o salida
PORTA = 11111111

la resistencia de pull-up estan activadas en los pins 0,2,4,6 del puerto
los otros pins estan como salidas y a nivel alto
Si el pin esta DDRx configurado como entrada entonces el bit de este registro
activa la resistencia de pull-up(1) o no (0).

Por ejemplo
DDRA = 0110 1111
PORTA = 1010 0110

Analizando los bits de izquierda a derecha tenemos:
• Bit 7: entrada con resistencia al positivo.
• Bit 6: salida a nivel 0 (0 Vcc)
• Bit 5: salida a nivel 1 (5 Vcc)
• Bit 4: entrada con alta impedancia.
• Bit 3: salida con nivel 0 (0 Vcc)
• Bit 2: salida con nivel 1 (5 Vcc)
• Bit 1: salida con nivel 1 (5 Vcc)
• Bit 0: salida con nivel 0 (0 Vcc)
Código:
Récapitulando
DDRx  PORTx  Entrada/Salida  Resistencia    Description
                             de pull-up 
 
0      0          Entrada     NO        el pin esta en entrada con alta impedancia  
0      1          Entrada     SI        el pin esta en entrada con resistencia al positivo  
 
1      0          Salida      NO        el pin esta en salida y con nivel 0  
1      1          Salida      NO        el pin esta en salida y con nivel 1
Los registros PINA, PINB, PINC y PIND son los registros de entrada.
Sus bits están asociados a los pins de los puertos, de tal manera que lo que se lea de estos
registros será el estado de los pins del puerto, que están configurados como entrada en los
correspondientes registros DDRA, DDRB, DDRC y DDRD.

Aqui Un Ejemplo Para Simular Con El AvrStudio En Asm

Código:
;------------------------------------------------------ 
; Los Puertos :Sumar Dos Numeros : Sumar 15+2
;             :Transmitirlo Al Exterior" Por El Puerto B
;------------------------------------------------------ 
; Declaraciones estandar para este micro AT90S8515: 
 .include "8515def.inc" 
;----------------------------------------------------------- 
; Definicion de constantes y variables 
;-----------------------------------------------------------
; Pila
  .equ          PILA                   =0x0FF 
;-----------------------------------------------------            
.DSEG        
; MEMORIA RAM        
     .ORG                (PILA+1) 
;---------------------------------------------------- 
;            Vectores de interrupcion 
;----------------------------------------------------            
 .CSEG        
    .ORG     0x0000         
 rjmp        RESET                        ; RESET 
; -------------------------------------------------------- 
;                       RUTINA DE RESET 
; -------------------------------------------------------- 
RESET:  cli
        ldi        r16,HIGH ( PILA )         
 out        SPH,r16         
 ldi        r16,LOW (PILA )                          
 out        SPL,r16         
;*******DESDE AQUÍ VUESTRO CODIGO*****
ldi     r18,0x15  ; carga  00010101  0= Entrada 1=Salida
out     0x18,r18 ; r18 es enviado a PortB (Configura Salida Datos De Puerto.B) 
ldi     r17,0x02  ; carga  00000010 0= Entrada 1=Salida
out     0x17,r17  ; r17 es enviado a DdrB (Configura Salida De Direcion Puerto.B)  
add     r18,r17   ; carga  00010101 + 00000010 Suma Los 2 Registros
 
out     0x18,r18  ; salida de datos Por El puerto.B 
rjmp stop
;****HASTA AQUÍ VUESTRO CODIGO******** 
STOP:        rjmp        STOP   ;FIN DEL PROGRAMA
27/08/2009 #48


Como comlemento a la explicación de Belgi subo este archivo pdf en el que explico como se configuran y además unas técnicas básicas para su programación

Saludos

Meta dijo: Ver Mensaje

Por cierto, ya me funciona el circuito. Los voy a guardar todos los que publiques. Poco a poco a coger ideas. He visto que en WinPic800 está el AT90S2313.
Winpic800 es un programa muy completo con el que grabar tanto pics como avr y también memorias. Como muchos de nosotros ya programamos pics seria interesante hacerse con uno de estos para poder programar ambos con este progamador
WinPic800 - GTP-USB [ plus ]

¿Que os parece? Lo de winpic me dijeron que funciona tambien en vista
Archivos Adjuntos
Tipo de Archivo: pdf Puertos E_S.pdf (71,8 KB (Kilobytes), 188 visitas)
27/08/2009 #49

Avatar de microtronic

GTP USB plus es pago...no es gratuito es trendo programador pero no es libre.....ademas solo tiene algunos avr no la mayoria....por ejemplo no tiene el atmega 1280 tampoco el atmega328 entre otros....

Amigos para avr creo que lo mejor para comenzar es adquirir una placa arduino....yo ando con ganas de comprarme la arduino mega....

programadores tenemos..
http://dybkowski.net/elka/ispprog_en.html ISP PROG
http://www.fischl.de/usbasp/ usbasp

saludos
27/08/2009 #50

Avatar de Meta

Buenas:

En vez de quejarse, a buscar solución. Para ello hay que moverse, si no nos movemos no avansamos, así es la vida.

Ya he comentado esto en WinPic800 - ¿Puedes meter más periféricos? - Foros

A ver si al final nos hacen caso, si no lo avisamos no se entera.
27/08/2009 #51

Avatar de microtronic

calma meta tu eres como hiperactivo...
27/08/2009 #52


jeje es verdad, los de winpic sacaron hace pocos meses la ultima version y los modelos mas importantes se pueden programar, total cuantos modelos necesitas? 100?
27/08/2009 #53

Avatar de microtronic

lo que pasa es que sisco segun yo se el es el diseñador y autor del hardware y software del mismo winpic800 y gtp plus....generalemente el proyecto nacio a la idea de hacer un porgramador de pic usb...el cual fue creciendo y se le fueron incorporando mas micros...pero si no estoy equibocado el proyecto esta basado mas que todo es a porgramar PICs no avr...los avr estan hay como opciones...mas no creoq ue sea el fuerte de el proyecto....
unque no esta de mas que le icluya mas micros avr....

los del atmega 328p es porque es el que se consigue por estos lares junto con el atmega 32, 16 y el 1280 para las aurduino junto con el 168
27/08/2009 #54

Avatar de Meta

Sisco me ha dicho que la idea de WinPic800 es programar muchos dispositivos hasta los motorola que aún no ha hecho por ahora. Me lo dijo antes de que aparecieran los PIC32.

Parece que si se actualizarán más AVR con el tiempo, al menos los más usados. Mientras...

...seguimos con información de AVR.

Si que es viejo el ATMEL. http://es.wikipedia.org/wiki/Atmel Hay otras curiosidades en http://es.wikipedia.org/wiki/AVR




EDITO:

* Sugerencia: *

Veo que unos quieren hacer ASM, otros bajo C. Por lo que veo van a doptar el C. Mi sugerencia es hacer una pequeña introducción desde el principio del libro como mover registros, datos a la RAM, incrementar valores, restar datos, preparar entradas y salidas, un largo etc. Está bien para conocer algo del microcontrolador de AVR por dentro paso a paso. No digo que se haga como el www.pic16f84a.org que es muy largo, si algo para tener conocimientos y se aprende mucho.

Después será todo en C. Ahora a ponerse de acuerdo qué se va hacer realmente.

PD: No se olvide del SkyDrive de hotmail para subir archivos de 50MB cada uno cuando empiecen a subir archivos. Os dejo un ejemplo de uno de 22MB en PDF.

Manual Visual C#:

Descargar

Salu2.
27/08/2009 #55


Yo sigo partidario del asm pero lo haré con el tiny2313 o el tiny48 seguramente con el segundo que esta muy completo.

C siempre es el lenguaje preferido por todos pero siempre hay que empezar desde abajo total en C hacer rutinas para i2c, o una lcd no tiene tanto merito.
27/08/2009 #56

Avatar de Meta

asuryan87 dijo: Ver Mensaje
Yo sigo partidario del asm pero lo haré con el tiny2313 o el tiny48 seguramente con el segundo que esta muy completo.

También soy de esos.

C siempre es el lenguaje preferido por todos pero siempre hay que empezar desde abajo total en C hacer rutinas para i2c, o una lcd no tiene tanto merito.

Es el preferido porque es más fácil y rápido, sobre todo proyectos grandes. También porque hoy en día hay muchos cómodos.

Como había dicho antes, un poco de ensamblador no viene mal, luego se centrarán en C.
28/08/2009 #57


Por eso decia de empezar con asm, empezar con C es como empezar a leer un libro por la mitad
28/08/2009 #58

Avatar de Meta

Por lo que veo puedes empezar, claro que primero debes.


1-. Planificar.
2-. Organizar.
3-. Diseño de la Interfaz.
4-. Programación.


Luego ya harás un índice temporal de lo que vas hacer con el ensamblador. Una vez elegido el datasheet del AVR, publicarlo por aquí para ver su arquitectura interna. Ya me encargaré de meter una imagen del PDF por aquí.

Todavían ya pueden poner ejemplos, si quieres pueden hacer los mismos ejemplos del Microcontrolador PIC16F84. Desarrollo de proyectos. Editorial Ra-Ma para guiarse y no perder mucho el tiempo mientras se hace bien. Tengo ganas de ver el ensamblador.

Ánimo a tod@s.
28/08/2009 #59


Tranqui si ya tengo pensado como hacerlo. aunque el libro del 16f84 tiene ejemplos un poco obsoletos asi que intentare hacer una version mas moderna o sustituirlos.

P.D. A partir del dia 2 estare sin conectarme casi 1 mes asi que intentaré subir un ultimo ejemplo en C de como usar una lcd 2X16 + la biblioteca, la encontre hace tiempo y tiene un manual de uso bastante extenso, tengo traducido la mitad asi que intentare ternerlo listo antes del lunes ademas de esto subiré un ejemplo de uso de interrupciones externas, solo necesito comentarlo y listo.
28/08/2009 #60

Avatar de Meta

Ok.

¿Qué compilador van a usar al final tanto a C como en ASM para saberlo? Por curiosidad quiero ver como es, hace cerca del año lo instalé pero no se usar nada de él. Suerte con traducir el manual que dices.

Mira las opiniones de otros por aquí.

Ya pueden dejar claro que AVR van a usar para todo el manual/libro.






PD: ¿Dime qué ejemplos tiene obsoleto del libro y por qué? Por ahora estoy aprendiendo con ese libro mucha cosas y es el mejor libro que he visto sobre ASM para PIC. Lo que veo obsoleto es algunos proyectos como el SAA1064, en ADC, DAC, sólo proyectos, no la programación. Se que ya están los nuevos núcleos ya mejorados de los 16F que puedes ver aquí.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.