Autor Tema: Microcursillo en C  (Leído 178964 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
RE: Microcursillo en C
« Respuesta #330 en: 16 de Diciembre de 2005, 13:30:00 »
Gracias por tu respuesta omibaya.

Por otro lado, ¿Sabiais que esto:

delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);

ocupa mas espacio de memoria, que esto:

delay_ms(2500);     ??

Yo pensaba que el ccs, al ver que se escribe el mismo retardo varias veces, lo trataba como una rutina, y solo lo escribia una vez, pero no es así. Quizas vosotros ya lo sabiais, pero yo estoy empezando con el C, y me ha sorprendido.

Saludos.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Microcursillo en C
« Respuesta #331 en: 16 de Diciembre de 2005, 16:06:00 »
Bueno que ocupe mas espacio de memoria es logico, ya que cada vez que se llama a una funcion, el compilador lo que hace es pegar todas las instrucciones de dicha funcion en el sitio donde se ha llamado, en este caso tu has puesto 5 llamadas de una funcion(delay), eso hara que al compilarlo esten 5 rutinas de delay unas detras, en cambio en la otra rutina aunque sea de mas tiempo solamente se llamada una vez, aparte los tiempos de retardo tambien vienen delimitados por los tipos de las variables definidas en dichas funciones....

Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
RE: Microcursillo en C
« Respuesta #332 en: 18 de Diciembre de 2005, 16:28:00 »
Hola a todos:

Alguien sabe como se puede usar un "long" , definido en ccs, con instrucciones en ensamblador, con un "int" no hay problema, pues se usa como si fuese un registro normal definido en ensamblador.

Saludos y gracias.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado FixxxerMetal

  • PIC10
  • *
  • Mensajes: 11
RE: Microcursillo en C
« Respuesta #333 en: 31 de Enero de 2006, 19:01:00 »
De que me sirve usar la libreria #include <lcd.c>??? no sabia que esta existia y tuve que hacer mi propio programa para inicializar y mostrar palabas en el lcd.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Microcursillo en C
« Respuesta #334 en: 01 de Febrero de 2006, 00:08:00 »
Es una librería que aporta CCS para precísamente ahorrarte tener que diseñar tú todas las funciones de gestión de un LCD.
Si miras en la carpeta "Drivers" del directorio donde hayas instalado el compilador, verás una lista de dispositivos para los que CCS ya tiene librerías.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Microcursillo en C
« Respuesta #335 en: 01 de Febrero de 2006, 00:26:00 »
microfalo si a lo que te refieres es que si a partir un registro (variable int), unirlo con otro registro (variable int) para conseguir una variable long se hace con make16(), mirate también el make(8), y el make(32).

Un saludo

Desconectado FixxxerMetal

  • PIC10
  • *
  • Mensajes: 11
RE: Microcursillo en C
« Respuesta #336 en: 01 de Febrero de 2006, 18:41:00 »
Que hacen estas librerias?
la fuses no conozco: NOBROWNOUT, NOCPD, NOWRT
las otras dos librerias ni idea.
#include <stdlib.h>
#fuses XT, NOPROTECT, PUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#zero_ram

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Microcursillo en C
« Respuesta #337 en: 02 de Febrero de 2006, 00:58:00 »
Si utilizas el Asistente de CCS para crear un proyecto nuevo, y seleccionas el modelo de PIC con que vas a trabajar, no tendrás que preocuparte del significado de los FUSES, porque contestando a los parámetros de configuración de un formulario, él se encargará de generar el código correcto.
De todas formas, te pego aquí lo que genera al crear el código para un 18F4550 de manera automática, porque seguro que te sacará de muchas dudas:
Codigo:
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES XT                       //Crystal osc <= 4mhz
#FUSES NOPROTECT                //Code not protected from reading
#FUSES BROWNOUT_SW              //Brownout controlled by configuration bit in special file register
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES BORV20                   //Brownout reset at 2.0V
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES LVP                      //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES PBADEN                   //PORTB pins are configured as analog input channels on RESET
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOCPB                    //No Boot Block code protection
#FUSES MCLR                     //Master Clear pin enabled
#FUSES LPT1OSC                  //Timer1 configured for low-power operation
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL1                     //No PLL PreScaler

Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: Microcursillo en C
« Respuesta #338 en: 14 de Febrero de 2006, 21:12:00 »
Hola

Alguien le ha dado una vuelta a esto???

http://sdcc.sourceforge.net/

Saludos

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Microcursillo en C
« Respuesta #339 en: 15 de Febrero de 2006, 00:57:00 »
Parece que aún no soporta los PIC...

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Microcursillo en C
« Respuesta #340 en: 15 de Febrero de 2006, 05:10:00 »
Bueno.....la competencia hace que se mejoren unos a otros....Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado gONzAO

  • PIC10
  • *
  • Mensajes: 38
RE: Microcursillo en C
« Respuesta #341 en: 16 de Marzo de 2006, 05:22:00 »
Escrito originalmente por nocturno66
Parece que aún no soporta los PIC...

Sí, sí que vale para los pic

Un saludo

gONzAO

Desconectado Bigdogo

  • PIC10
  • *
  • Mensajes: 17
Re: Microcursillo en C
« Respuesta #342 en: 18 de Abril de 2006, 20:04:34 »
Hola a todos,

Como  puedo hacer para leer, por ejemplo, lo que hay en la puerta A de un 16F628 y guardar los datos en la memoria del PIC?  Como puedo verificar que los datos han sido guardados correctamente?

Saludos,

Jose
Saludos,

Jose

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Microcursillo en C
« Respuesta #343 en: 19 de Abril de 2006, 02:30:13 »
Imagino que te refieres a almacenarlas en la memoria eeprom del pic.
Si es así, te convendría echar un vistazo al ejemplo EX_INTEE.C del CCS donde aparecen las funciones para manejar la eeprom.
Te recomiendo que luego hagas tu código y si tienes dudas las postees adjuntándolo, así será más fácil ayudarte.

Desconectado Bigdogo

  • PIC10
  • *
  • Mensajes: 17
Re: Microcursillo en C
« Respuesta #344 en: 19 de Abril de 2006, 14:43:10 »
Gracias Nocturo, hechare un vistazo
Saludos,

Jose