Comenzar a trabajar con SDCC y pic 14 bits (PIC12, PIC16).
3 participantes
Página 1 de 1.
Comenzar a trabajar con SDCC y pic 14 bits (PIC12, PIC16).
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;
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;
Re: Comenzar a trabajar con SDCC y pic 14 bits (PIC12, PIC16).
Muchas gracias por el ejemplo, por ahora he hecho unos cuantos programas usando SDCC (tres ), 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 ).
Re: Comenzar a trabajar con SDCC y pic 14 bits (PIC12, PIC16).
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
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
Temas similares
» Comenzar a trabajar con Piklab.
» SDCC: Driver para Usart PIC16*
» Libreria LCD 20x 4 Flexible 3 bits SDCC PIC18F2550
» Libreria LCD 20 x 4 Flexible 4 bits SDCC PIC18F2550
» Rutinas varias pic16 y pic18
» SDCC: Driver para Usart PIC16*
» Libreria LCD 20x 4 Flexible 3 bits SDCC PIC18F2550
» Libreria LCD 20 x 4 Flexible 4 bits SDCC PIC18F2550
» Rutinas varias pic16 y pic18
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.