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

Temas similares

18/03/2013 #401

Avatar de Meta

Hola:

¿Visual studio?

No sabía que Atmel puede programarse bajo Visual Studio .net, si te refieres al IDE de Microsoft. Ojalá hagan en el futuro y muy seriamente el C#, al menos le C++ que es más potente que solo el C.

Saludo.
18/03/2013 #402

Avatar de ByAxel

Me refiero al IDE de Visual Studio ya que el instalador integra el "Microsoft Visual Studio 2010 Shell" que básicamente es una serie de archivos para que el Atmel Studio se paresca al Visual Studio. En fin, es como programar en VC++.
02/04/2013 #403


que tal amigos alguien tiene un tutorial de atmel donde vengan los significados de ciertos comandos como por ejemplo lo que es DDRB en un atmel? los tipo de datos, como definir variables etc es que quiero pasar un codigo de atmel para un pic pero tengo duda en algunas parte del programa,el codigo esta en c pero para atmel, gracias
03/04/2013 #404


por ejemplo lo que es DDRB en un atmel?

Los registros DDRA, DDRB, DDRC y DDRD,
son los registros de Dirección de Datos y sirven para configurar
cada pin del puerto como entrada (con el valor 0)
o 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.
03/04/2013 #405

Avatar de StrySG

En la pág anterior de este mismo tema esta la traducción de la nota de aplicación de Atmel AVR04027 para la optimización del código en lenguaje C para AVRs de 8 bits...

Traduccion o creacion de manual para microcontroladores AVR

Están tipos de datos sus definiciones y otras cosas...
06/04/2013 #406

Avatar de hamster

Hola gente ! tengo un problema y necesito ayuda.

Estaba haciendo pruebas con el WAV PLAYER AVR usando el MCU ATMEGA328P y las librerias petit FAT de Elm-Chan y pues a nivel de código todo parece bien , ademas con proteus no hay problema y simula perfecto, pero cuando lo pruebo en tabla de nodos es otra cosa... da muchos errores........
despues de un largo analisis al código , me di cuenta que no es el código....

y que el AVR STUDIO no esta compilando algunas funciones ,, ya rebusque las configuraciones del AVR studio, hasta cargue varias librerias, pero nada..... no compila varias funciones unas de ellas son:
_delay_ms(); y _delay_us(); definidas en <util/delay.h>
he usado el AVR studio en muchas ocasiones, pero es primera vez que me pasa esto.... hasta los proyectos que estaban buenos y ya probados.. si los recompilo me dan problemas..

subire los archivos en proteus y avr studio por si alguien quiere verlos
Archivos Adjuntos
Tipo de Archivo: rar avr_player.rar (167,4 KB (Kilobytes), 17 visitas)
06/04/2013 #407

Avatar de Ajna

Ya revisaste las directivas de optimizacion, yo una ves casi me ahorcaba porque parecia que el codigo se saltaba ciertas cosas, y despues de mucho batallar resulto ser el nivel de optimizacion y mis tecnicas sucias de programacion jejeje
07/04/2013 #408

Avatar de hamster

Hola amigo Ajna ,,, ya revise los niveles de optimización. he probado con todos...
Os, O0,O1...etc
no me compila las funciones que usan retardos usando _delay_ms y _delay_us .... intentare cambiar la libreria delay.h

---------- Actualizado después de 4 horas ----------

consegui otra versión de la libreria delay.h y no me funciono de todo bien... compilo pero no estaban bien los tiempos.

alguno de ustedes que tenga avr studio y que al compilar las funciones _delay_ms y _delay_us no les de problema.... por favor podrian buscar los archivos delay.h y delay_basic.h y subirlos aca...

se los agradeceria mucho..
07/04/2013 #409

Avatar de Moyano Jonathan

A mi me compiló perfectamente en ATMEL Studio 6, probalo para ver si te funciona. Y probalo en la realidad...el simulador no te sirve para este tipo de pruebas...
Archivos Adjuntos
Tipo de Archivo: rar GccApplication1.rar (144,9 KB (Kilobytes), 14 visitas)
08/04/2013 #410

Avatar de hamster

O.k.. gracias Moyano mañana mismo montare el circuito....
08/04/2013 #411


que tal foreros después de estar un tiempo tratando de entender un código de atmel no eh podido entenderlo ya que lo que quiero es pasar el código para usar con el compilador c18 de microchip y ya lo pase tal cual simplemente configurando para el c18 y la simulación no me da igual que con el atmel no se cual sea el problema y no es mucho código lo que quiero pasar :( lo que se hace es una señal de clock, datos y reset para poder controlar un modulo de sonido WTV020-SD, en el código de atmel ya esta funcionando, lo encontré en internet y reduje el código a lo mas simple que es lo que yo necesito, pero ya al tratar de pasarlo a un pic18 con el compilador c18 ya no da igual que con la simulación del atmel16 y lo que quiero lograr es eso para asegurarme de que funcione en el pic18f458.

Este es el codigo de atmel16 con atmel studio 6.0

Código:
#include <avr/io.h>
#include <util/delay.h>


#define DI                  PB0
#define CLK         PB1
#define RST         PB2
#define WTV20_PORT    PORTB

int main(void)
{
    DDRB=0B00000111;
    PORTB=0B00000111;
    
    WTV20_PORT&=~(1<<RST);
    _delay_ms(5);
    WTV20_PORT|=(1<<RST);
    _delay_ms(300);
    
    
    WTV20_PORT&=~(1<<CLK);
    _delay_ms(2);

    int i;
    for ( i=15; i>=0; i--)
    {
        _delay_us(50);
        if((0xFFFE>>i)&0x0001 >0)   //El dato 0xFFFE es el que se sustituye 
        {                                              //para enviar diferentes comandos de 16 bits
                                                    //el 0xFFFE es el comando play
                     WTV20_PORT|=(1<<DI);
        }
        else
        {
            WTV20_PORT&=~(1<<DI);
        }
        _delay_us(50);
        WTV20_PORT|=(1<<CLK);
        _delay_us(50);
        
        if(i>0)
        WTV20_PORT&=~(1<<DI);
        else
        WTV20_PORT|=(1<<DI);
        _delay_us(50);
        
        if(i>0)
        WTV20_PORT&=~(1<<CLK);
        else
        WTV20_PORT|=(1<<CLK);

    }
    
    _delay_ms(20);
    while(1)
    {
        
    }
}
Ahora con el código para c18 es prácticamente lo mismo, pero no sé porqué no me funciona la simulación,
tal vez sea por los corrimientos de los bits que no es igual que un atmel o no sé la verdad ya estoy sin ideas :(
Código:
#include <P18F458.h>
#include <delays.h>

#pragma config OSC=XT, OSCS=OFF    //Cristal como reloj, apaga reloj interno
#pragma config WDT=OFF            //Apaga WDT
#pragma config PWRT=ON, BOR=ON    //Activa Power On Reset
#pragma config DEBUG=OFF          //Desactiva debug
#pragma config LVP=OFF, STVR=OFF  //No reset overflow stack y patita PB5=I/O

#define DI                 PORTBbits.RB0
#define CLK                PORTBbits.RB1
#define RST            PORTBbits.RB2
#define WTV20_PORT        PORTB

    
void main(void)
{

    int i;

    PORTB=0;
    TRISB=0b11111000;
    PORTB=0b00000111;

    WTV20_PORT&=~(1<<RST);            
    Delay100TCYx(50);            // 5 ms
    WTV20_PORT|=(1<<RST);            
    Delay1KTCYx(300);            // 300 ms



    WTV20_PORT&=~(1<<CLK);
    Delay100TCYx(20);                    //2 ms

    
    for( i=15;i>=0;i--)
    {
        Delay10TCYx(5);                                  //50 us
        if((0xFFFE>>i)&0x0001>0)                   //0xFFFE comando a enviar
        {
            WTV20_PORT|=(1<<DI);
                
                                
        }

        else
        {
            WTV20_PORT&=~(1<<DI);
            
                            
        }
        Delay10TCYx(5);                                    //50 us
        WTV20_PORT|=(1<<CLK);
        Delay10TCYx(5);                                     //50 us            
     
        if(i>0)
        WTV20_PORT&=~(1<<DI);
        else
        WTV20_PORT|=(1<<DI);
        Delay10TCYx(5);                                 //50 us                 
    
        if(i>0)
        WTV20_PORT&=~(1<<CLK);
        else
        WTV20_PORT|=(1<<CLK);
                    
    
    }

    Delay100TCYx(200);                    //20 ms
      while(1)
        {    
    
      }
}
Adjunto la simulación del proteus de código para el atmega16 así como del pic18f458 espero me puedan ayudar gracias.
Archivos Adjuntos
Tipo de Archivo: rar Pininodeaudio.rar (52,6 KB (Kilobytes), 16 visitas)
Tipo de Archivo: rar WTV020(1).rar (45,2 KB (Kilobytes), 17 visitas)
18/09/2013 #412

Avatar de Meta

Ahora te pasas al XC8, que es el sustituto preferiblemnte del C18 y más actualizado. más adelante el C18 dejará de actualizarse.
Respuesta
¿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.