Microcontroladores PIC en Linux.
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Comenzando con SDCC

5 participantes

Ir abajo

Comenzando con SDCC Empty Comenzando con SDCC

Mensaje por arielpalazzesi Jue 11 Feb 2010 - 17:30

Hola!
Una de las dos o tres cosas que me obligan a mantener una maquina con Windows es el compilador CCS. Necesito migrar a SDCC para dejar de una vez por todas esa maquina apagada Comenzando con SDCC Icon_biggrin

Como les debe haber pasado a todos, encuentro con que hay muy poca documentacion sobre este compilador, y el PDF "oficial" tampoco es la gran cosa. Comenzando con SDCC Icon_rolleyes

Estoy tratando de encontrar la forma de lidiar con la definicion de los "fuses", pero no encuentro nada concreto.

¿Alguien tiene un link que pueda darme alguna pista?

Gracias!

arielpalazzesi
Nuevo Usuario
Nuevo Usuario

Mensajes : 3
Fecha de inscripción : 11/02/2010

Volver arriba Ir abajo

Comenzando con SDCC Empty Re: Comenzando con SDCC

Mensaje por Pikitin Jue 11 Feb 2010 - 22:00

Hola arielpalazzesi.

En Piklab, en Menú/Herramientas/Generador_de_configuración , te genera automaticamente la linea que debes añadir, solo eliges el modelo de PiC, el compilador y le dás a "copiar al portapapeles" , luego lo pegas en tu programa.


De todas formas un ejemplo:

Código:
#include

/* Setup chip configuration */

typedef unsigned int word;
word at 0x2007 CONFIG = _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _ER_OSC_CLKOUT & _MCLRE_ON & _LVP_OFF;

Otro:
Código:
#include  //Adaptar a pic utilizado


//------Bits de configuración: adapte los parámetros a su necesidad-------
//------------------------------------------------------------------------

typedef unsigned int word;
word at 0x2007 CONFIG = _HS_OSC & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _DEBUG_OFF & _CP_OFF;


Otro:
Código:
#include 

// Configurations
    typedef unsigned int config;
    config at 0x2007 __CONFIG = _HS_OSC & _PWRTE_ON & _BODEN_OFF & _WDT_OFF & _LVP_OFF;


Otro para 18F
Código:
#include

// Configurations
code char at __CONFIG1H conf1 = _OSC_HS_PLL_1H & _OSCS_ON_1H;  // Select HS PLL OSC
code char at __CONFIG2L conf2 = _PUT_ON_2L;
code char at __CONFIG2H conf3 = _WDT_OFF_2H;                    // Disable WDT
code char at __CONFIG4L conf4 = _LVP_OFF_4L;                    // Disable LVP


Saludos.


Última edición por Pikitin el Jue 11 Feb 2010 - 22:04, editado 1 vez

Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

Comenzando con SDCC Empty Re: Comenzando con SDCC

Mensaje por arielpalazzesi Jue 11 Feb 2010 - 22:03

Muchas gracias!
Habia visto esa ventaja del PIKLab. Pasa que no lo estoy usando, uso un editor de texto, a lo macho! Ja ja ja ja ja! Comenzando con SDCC Suspect

Igual, es util para deducir algo.

Otra cosa que me fue de ayuda es mirar los archivos ".h" que instala para cada PIC. Ahi figuran todos los fuses permitidos.

Gracias! Comenzando con SDCC Icon_biggrin

arielpalazzesi
Nuevo Usuario
Nuevo Usuario

Mensajes : 3
Fecha de inscripción : 11/02/2010

Volver arriba Ir abajo

Comenzando con SDCC Empty Re: Comenzando con SDCC

Mensaje por Geo Jue 11 Feb 2010 - 22:27

Yo estoy en las mismas, sigo con CCS :S.

Solo como comentario, recordar que el CCS de Win puede usarse sin problemas en Linux, si no te llega a funcionar el IDE, puedes hacerlo por línea de comandos.

Geo
Participante Activo
Participante Activo

Mensajes : 92
Fecha de inscripción : 16/12/2008
Localización : México

http://hsblog.mexchip.com

Volver arriba Ir abajo

Comenzando con SDCC Empty Re: Comenzando con SDCC

Mensaje por arielpalazzesi Jue 11 Feb 2010 - 22:32

Geo escribió:Yo estoy en las mismas, sigo con CCS :S.

Solo como comentario, recordar que el CCS de Win puede usarse sin problemas en Linux, si no te llega a funcionar el IDE, puedes hacerlo por línea de comandos.

Hola!
A no desanimarse, que de a poco vamos a ir tomandole la mano.
El tema de usar SDCC tambien pasa por el tema legal, no solo por la "incompatibilidad" con Linux. Comenzando con SDCC Icon_rolleyes

Puede parecer poco importante, pero para mucha gente no lo es. Comenzando con SDCC Icon_pirat

arielpalazzesi
Nuevo Usuario
Nuevo Usuario

Mensajes : 3
Fecha de inscripción : 11/02/2010

Volver arriba Ir abajo

Comenzando con SDCC Empty Re: Comenzando con SDCC

Mensaje por Risanti Vie 12 Feb 2010 - 22:00

Mi experiencia con SDCC es bastante buena, estoy deacuerdo que no hay mucha informacion en la red, acerca especialmente de ejemplos , Pero existen algunas Como Felixls en su blog que se encuentra algunos proyectos realizados en SDCC o Algunas librerias que estan en este foro,desarrolladas por Geo y otros mas.

Basicamente debes saber lo basico del Mundo C Ansi y ya tienes parte de SDCC el resto es Complementarlo con los conocimientos acerca de los PIC (Como por ejemplo nombres de los registros de cada PIC. estos estan definidos en #include <pic16f84a.h>)

Por Ejemplo aqui hay un contardor de 0 a 9 con display de 7 segmento.

Código:


/*************************************************************************** */
/* Contador7seg.c      Diciembre 26-12-2008                                  */
/*---------------------------------------------------------------------------*/
/* Ejemplo Contador de 0 a 9 con Display de 7 Seg                            */
/*---------------------------------------------------------------------------*/
/*  Ricardo Santibañez                                */
/*---------------------------------------------------------------------------*/
/* Desarrolado con SDCC, LICENCIA GPL                              ñ        */
/*****************************************************************************/


#include <pic16f84a.h>

#include <delay.h>


typedef unsigned int word;
word at 0x2007 CONFIG = _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF;

unsigned int display[10] ={0x01,0xcf,0x12,0x06,0x4c,0x24,0x20,0x0f,0x00,0x0c} ;//Definicion de Numeros en Display 7 Seg
char i=0;

//    Funcion Principal del Programa, Contador de 0 a 9, segun cambios en RA0
void main()
 {
  TRISB=0;            //Configurar Puerto b como Salidas
  TRISA=1;            //Configurar Puerta.0  como entrada y el resto salida

  while(1)
  {
    PORTB=display[i];
    if (RA0==0)
      {
        delay_ms(200);    // Lamado a Funcion delay_ms includa en libreria delay.h, tiempo aprox 200ms,evitar rebotes
        if (RA0==0)        //if Ra0 es 0 durante 200ms, significa que fue probocada por un rebote
        {
          i++;        //Incremento valor de contador
          if (i==10){    i=0;}  // Si valor el igual a 10 reseteo cuenta
          while(RA0==0);        // Salir solo cuando suelte pulsador en RAO
          }
      }
    }
}


Yo pienso que es una buena opcional este compilador .

atte.
RiSanti
Risanti
Risanti
Asiduo del Foro
Asiduo del Foro

Mensajes : 172
Fecha de inscripción : 07/12/2008
Edad : 39
Localización : La Serena Chile

https://www.facebook.com/risanti.electronica

Volver arriba Ir abajo

Comenzando con SDCC Empty Comenzando con SDCC

Mensaje por edwinlc Dom 14 Feb 2010 - 2:45

Buscando un tutorial para el sdcc encontre tutorial mas ejemplos con el pic16f876a en http://www.iearobotics.com muy bueno para poder empezar con este compilador.

En windows ya habia utilizado para hacer mis pruebas con un bootloader pero no en linux en esta pagina también encontraran como utilizar un bootloader bajo linux.

edwinlc
Nuevo Usuario
Nuevo Usuario

Mensajes : 1
Fecha de inscripción : 17/12/2009

Volver arriba Ir abajo

Comenzando con SDCC Empty Re: Comenzando con SDCC

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.