TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Risanti en 01 de Octubre de 2008, 19:46:30

Título: SDCC.. me recomiendan algun tutorial
Publicado por: Risanti en 01 de Octubre de 2008, 19:46:30
A la todos..

Estoy retomando la programacion de Pic, usando Piklab en GNU/Linux Ubuntu. sin embargo deseo programar en C
para lo cual estoy usando Sdcc, mi dua es si existe algun tutorial o donde explique funciones basicas en sdcc

Definicion de puertos
generacion de retardos
Manejo LCD.comunicacion serial
Etc

Esperando su ayuda.
Risanti
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: navaismo en 01 de Octubre de 2008, 20:48:28
Revisa esto:

http://www.micahcarrick.com/04-25-2005/pic-c-programming-linux.html
http://sdcc.sourceforge.net/
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: Risanti en 02 de Octubre de 2008, 02:48:22
gracias por el dato.. pero no se si busco mal.. pero lo que me gustaria es algun ejemplo de programacion para cual pic 16Fxxx
 
ya que en la pagina no encuentro..
gracias
Risanti
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: navaismo en 02 de Octubre de 2008, 16:24:37
Pues creo que no pusiste mucha atencion, ya que en el primer link con negritas dice Compiling a C Program for the PIC - toggle_led.c lo cual es un ejemplom para el PIC16F627
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: MLO__ en 02 de Octubre de 2008, 20:43:49
Tal como lo dices Navaismo:

Código: C#
  1. /*
  2.  toggle_led.c
  3.  Micah Carrick
  4.  04.25.2005
  5.  
  6.  Toggles an LED on Pin 1 of PORTB on a PIC16F627. Written
  7.  as a sample for the article on using SDCC and GPSIM in
  8.  Linux. http://www.micahcarrick.com/v2/content/view/14/4/
  9.  
  10.  Compile: sdcc --debug -mpic14 -p16f627 toggle_led.c
  11.  Simulate: gpsim -pp16f627 -s toggle_led.cod toggle_led.asm
  12.  
  13. */
  14.  
  15. /* Define processor and include header file. */
  16. #define __16f627
  17. #include"pic/pic16f627.h"
  18.  
  19. /* Setup chip configuration */
  20. typedef unsigned int config;
  21. config at 0x2007 __CONFIG = _CP_OFF &
  22.  _WDT_OFF &
  23.  _BODEN_OFF &
  24.  _PWRTE_OFF &
  25.  _ER_OSC_CLKOUT &
  26.  _MCLRE_ON &
  27.  _LVP_OFF;
  28.  
  29. #define b1 0x02 /* pin 1 on PORTB */
  30. #define B_OUTPUTS 0xFD /* value used to setup TRISB */
  31.  
  32. void main(void) {
  33.  
  34.  /* PORTB.1 is an output pin */
  35.  TRISB = B_OUTPUTS;
  36.  
  37.  while(1) { /* Loop forever */
  38.  
  39.  /* toggle bit 1 */
  40.  PORTB = (PORTB ^ b1);
  41.  
  42.  }
  43. }
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: Risanti en 03 de Octubre de 2008, 12:20:25
Jajjaja... Gracias.. no revise bien...

Errar es Humano.. Gracias

Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: firepic en 03 de Octubre de 2008, 14:10:41
Muy bueno este hilo!
Gracias por los Links nava!
Por cierto Navaismo, comentaste que últimamente has estado trabajado bastante en linux. Eso me interesa sobremanera. ¿Has logrado desarrollar exitosamente proyectos en C usando el compilador libre SDCC? ¿Hay forma de usar el ICD2 con linux?
De antemano agradezco las respuestas, y saludos!  :mrgreen:
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: navaismo en 04 de Octubre de 2008, 20:10:42
Hola Fire, la verdad es que para electronica solo uso win ya sea en la VMWare o en l partcion, para electronica en Linux siempre busque algo con Basic y no hay muchas opciones un basic Stamp medio cutre y KTECHLAB que se quedo a medias. Como sabras soy de Basic a morir por ello casi nunca he usado el SDCC pero hay un sin fin de resources en la web que te pueden ayudar, al menos mi JDm es compatible con PIKLAB y por ahi puse alguna ves un videito de como jalaba.
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: firepic en 05 de Octubre de 2008, 13:06:16
Gracias por el comentario nava, si es verdad... olvidé que tu trabajas en basic.
Seguiré averiguando a ver qué consigo... mientras tanto seguiré con el virtualbox y el guindos, qué mas da...
Saludos, nos leemos!  :mrgreen:
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: arcachofo en 06 de Octubre de 2008, 17:20:35
Se supone que Piklab soporta ICD2, yo no lo uso, pero está entre las opciones...
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: arcachofo en 07 de Octubre de 2008, 23:15:23
Supongo que ya habrás mirado, pero este es el manual de la pag. oficial: http://sdcc.sourceforge.net/doc/sdccman.html/
Tambien hay una versión .pdf para descargar
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: Jpic en 22 de Diciembre de 2008, 05:00:51
Muy bueno este hilo!
Gracias por los Links nava!
Por cierto Navaismo, comentaste que últimamente has estado trabajado bastante en linux. Eso me interesa sobremanera. ¿Has logrado desarrollar exitosamente proyectos en C usando el compilador libre SDCC? ¿Hay forma de usar el ICD2 con linux?
De antemano agradezco las respuestas, y saludos!  :mrgreen:


amigo el ICD2 si esta soportado totalmente en linux, yo lo comprobe en mi debian lenny con piklab y va de maravilla, ademas el ICD2 q tengo es un clon compatible.
puedes ver un post q subi aqui: http://pic-linux.foroactivo.net/programadores-f12/icd2-100-funcional-en-piklab-t68.htm como configurar todo. es un foro nuevo al q estoy trabajando duro.
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: Risanti en 07 de Enero de 2009, 13:01:37
Hola a todos:
Tras un poco estudiar algo de c ansi  y un poco de ayuda (arcachofo por su libreria de ADC ,Bastante bueno su aporte)
he montado un voltimetro digital de 0 a 50V usando SDCC.


Se los dejo para que lo vean.
Código: [Seleccionar]
/*************************************************************************** */
/* Voltimetro_7seg_876.c Enero 4 del 2009 */
/*---------------------------------------------------------------------------*/
/* Ejemplo Voltimetro 0-50Vdc con Microcontolador Pic16F876A */
/* Con Display 7 Seg Multeplexado a traves de RA1,RA2,RA3 */
/*---------------------------------------------------------------------------*/
/* Ricardo Santibañez */
/*---------------------------------------------------------------------------*/
/* Desarrolado con SDCC. */
/*****************************************************************************/

#include
#include
#include /*Funcion para uso ADC gracias arcachofo PIc Linux*/



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


/* Declaracion de Variables */
char display[10]={0x01,0x4f,0x12,0x06,0x4c,0x24,0x60,0x0f,0x00,0x0c}; //Valores que representa numeros en display 7 seg.
char ingres=1;
long int digito1,digito2,digito3;
long int medida;
long int medida1;


/*Rutina de Interrupciones, en este caso por Desborde de Timer 0*/
void isr() interrupt 0 {

switch (ingres) //Selecciono que Display Activar y que valor cargar
{
case 1:
RA3=1;
RA2=1;
RA1=0;
PORTB=display[digito1];
ingres=2;
break;
case 2:
RA3=1;
RA1=1;
RA2=0;
PORTB=display[digito2];
ingres=3;
break;
case 3:
RA2=1;
RA1=1;
RA3=0;
PORTB=display[digito3];
ingres=1;
break;
}
T0IF=0; // Borro Bandera de Desborde
TMR0=150; // cargo valor en TMR0
}

void main() {

TRISA=1; // Puerta.0 como entrada y el resto como salida
TRISB=0; // Todo el Puerto B como Salida
TMR0=150; // inicio Tmr0 =150
OPTION_REG=5; //Configuro preescaler de TMRO
T0IE=1; // activo Int. por Tmr0
GIE=1; // Habilito Interrupciones
PORTB=0; // inicio Portb
adc_init(FOSC_2, A1_R0, INT_OFF); //Uso de Rutina ADC de PIC, iniciacion
while (1)
{
medida=adc_read(0); // Leer canal 0
medida1=((medida*500)/1023);//Escalar Variable de 0 a 500

/*Determinar Valores para cada digito del Display*/
digito1=(medida1/100);
digito2=(medida1-(digito1*100))/10;
digito3= medida1-(digito1*100+digito2*10);
delay_ms(200);

}

}


Ademas le dejo este video.

                                     


hay un pequeño error en el nombre del pic ... me equivoque .. jajaj es pic 16F876... pero dije pic 16F786 (upssss)

Ademas les dejo el esquema de este circuito

        (http://img114.imageshack.us/img114/5503/esquemahe6.png) (http://img114.imageshack.us/my.php?image=esquemahe6.png)
        (http://img114.imageshack.us/img114/esquemahe6.png/1/w620.png) (http://g.imageshack.us/img114/esquemahe6.png/1/)



atte. Risanti
Título: Re: SDCC.. me recomiendan algun tutorial
Publicado por: Nocturno en 07 de Enero de 2009, 15:01:40
Felicidades por conseguirlo Dexter Risanti.