Comenzar a trabajar con SDCC y pic 14 bits (PIC12, PIC16).

Ir abajo

Comenzar a trabajar con SDCC y pic 14 bits (PIC12, PIC16).

Mensaje por Pikitin el Sáb 6 Dic 2008 - 1:15

Lo primero decir que para trabajar con SDCC en Piklab es necesario crear un proyecto (solucionado en Piklab 0.15.4), sinó no va a compilar bién.
Si creamos un proyecto y le decimos que nos cree una plantilla (template) vamos a tener una estructura básica de programa, incluyendo definición del micro y bits de configuración:


/* ----------------------------------------------------------------------- */
/* Plantilla generada por Piklab */
#include //nombre del pic seleccionado

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

typedef unsigned int word;
word at 0x2007 CONFIG = _RC_OSC & _WDT_ON & _PWRTE_OFF & _BODEN_ON & _LVP_ON & _CPD_OFF & _WRT_OFF & _DEBUG_OFF & _CP_OFF;

void isr() interrupt 0 { /* rutina de servicio de interrupciones */
/* << agregue el código de interrupción >> */
}

void main() {
/* << agregue el código >> */
}


A partir de aquí podemos escribir nuestro programa.


BITS DE CONFIGURACION:

Si quereis cambiar los bits de configuración en Piklab, podeis usar la herramienta "generador de configuración", en el menú "Herramientas", os saldrá esta pantalla, no hay más que elegir la configuración desada, copiar al portapapeles y pegar en el lugar correspondiente de nuestro programa.


VARIABLES:

tipos de Variable:

char (8 bits, 1 byte), valores: -128 a 127
unsigned char (8 bits, 1 byte), valores: 0 a 255

short (16 bits, 2 bytes), valores: -32768 a 32767
unsigned short (16 bits, 2 bytes), valores: 0 a 65535

int (16 bits, 2 bytes), valores: -32768 a 32767
unsigned int (16 bits, 2 bytes), valores: 0 a 65535

long (32 bit, 4 bytes), valores: -2147483648 a 2147483647
unsigned long (32 bit, 4 bytes), valores: 0 a 4294967295

float (4 byte IEEE)



REGISTROS:

la sintaxis para manejar puertos de entrada/salida es esta:

Byte:
PORTB = 0x0F; PORTB= 15; PORTB = 0b00001111; PORTB = variable_char; PORTB &= v_char << x; etc.

Bit:
RB0 = 1; RB5 = 0;

Similar es la de otros registros: tanto a nivel byte como a nivel bit se accede solo con el nombre de registro en mayúscula:

ADCON0 = 0;
ADCON1 = 0b10000001;
ADCON0 = (fosc & 0x03) << 6;

ADIF = 0;
ADIE = 1;
PEIE = 1;


INSERTAR ASM:

_asm
sublw 1
bucle:
addlw 1
btfss STATUS,0
goto bucle
_endasm;

Pikitin
veterano
veterano

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

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

Re: Comenzar a trabajar con SDCC y pic 14 bits (PIC12, PIC16).

Mensaje por Geo el Jue 18 Dic 2008 - 6:41

Muchas gracias por el ejemplo, por ahora he hecho unos cuantos programas usando SDCC (tres Razz), compilando desde línea de comandos, recién empiezo a probar con Piklab y espero me sea de mucha ayuda (me gusta la parte de generación del código para la configuración del micro Smile).

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

Re: Comenzar a trabajar con SDCC y pic 14 bits (PIC12, PIC16).

Mensaje por Risanti el Sáb 3 Jul 2010 - 16:03

Hola a todos..
Quiza la mayoria que haya programado en C un Pic lo hizo utilizando CCS, aqui hay una guia que explica algunas consideraciones cuando se quiere migrar desde CCS a SDCC, es muy bueno sirve bastante para iniciar con este compilador.

http://particle.teco.edu/software/sdcc/sdccmigration.html#comparison
Saludos
RISanti
avatar
Risanti
Asiduo del Foro
Asiduo del Foro

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

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

Volver arriba Ir abajo

Re: Comenzar a trabajar con SDCC y pic 14 bits (PIC12, PIC16).

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.