Autor Tema: Cursillo en C18 para PICS DESDE CERO  (Leído 300204 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #240 en: 28 de Diciembre de 2009, 10:47:33 »
Hola otra vez.

Disculpen mi desespero pero bueno...sigo intentado una y otra y otra vez.

He logrado entre comillas "resolverlo" colocando un retardo de mínimo 5000 ciclos de reloj, para un cristal de 4 MHz pues serían unos 5ms.
Pero para la aplicación que quiero desarrollar, 5ms es una eternidad. Requiero leer al menos 6 bytes de la memoria, en un lapso máximo de 1 ms.

HEEEEEEEEEEEEEEEEEEEEEEEEEEELP  :sad: :8}

hola, el problema aun continua? nisiquiera en proteus te corre?
saludos!
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Ciul

  • PIC10
  • *
  • Mensajes: 7
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #241 en: 28 de Diciembre de 2009, 17:32:21 »
Ya lo resolví. Al parecer son problemas de Protheus en cuanto a la simulación de I2C.
A veces se soluciona con borrar todos los componentes y colocarlos de nuevo y ya, simula correctamente.

Acerca de los 5 ms después de la orden de escritura, nada que hacer, eso viene así en el datasheet de las memorias lo explican.
Después de cada escritura hay que esperar un tiempo.

Gracias por todo :)
Entre más aprendo, más reconozco que desconozco

Desconectado fantabuloso

  • PIC10
  • *
  • Mensajes: 24
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #242 en: 23 de Marzo de 2010, 13:45:50 »
Dejo Código básico, en C18, para utilizar un GLCD de 5.7" trabajando en 8 bits, con un controlador solomon SDD1963.

Saludos

Código: [Seleccionar]
#include "p18f4520.h"   
    #include <stdlib.h>
#include <stdio.h>
#include <delays.h>

#pragma config OSC = HSPLL, FCMEN = OFF, IESO = OFF                          // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 3                      // CONFIG2L
#pragma config WDT = OFF, WDTPS = 32768                                   // CONFIG2H
#pragma config MCLRE = ON, LPT1OSC = OFF, PBADEN = OFF, CCP2MX = PORTC    // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF, DEBUG = ON            // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF                 // CONFIG5L
#pragma config CPB = OFF, CPD = OFF                                       // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF             // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF                         // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF         // CONFIG7L
#pragma config EBTRB = OFF                                                // CONFIG7H

    // control line pins
    #define LCD_RS PORTBbits.RB7   
    #define LCD_WR PORTBbits.RB6
    #define LCD_RD PORTBbits.RB5
    #define LCD_CS PORTBbits.RB4
    #define LCD_RES PORTBbits.RB3
   
    /*************************************************/
    void Write_Command(unsigned char command)
    {
    PORTC = command;
        LCD_RS = 0;
      LCD_WR = 0;
        LCD_WR = 1;
    }

    /*************************************************/
    void Write_Data(unsigned char data1)
    {
        PORTC = data1;
        LCD_WR = 0;
        LCD_WR = 1;
    }

    /*************************************************/
    void Command_Write(unsigned char REG,unsigned char VALUE)
    {
        Write_Command(REG);
        LCD_RS = 1;
        Write_Data(VALUE);
    }

    /*************************************************/
    void SendData(unsigned long color)
    {
        LCD_RS = 1;
        Write_Data((color)>>16);   //red
    Write_Data((color)>>8);      //green
    Write_Data(color);
    }

    /*************************************************/
    void Init_SSD1963(void)
    {
    LCD_CS = 0;
    LCD_RD = 1;
    LCD_WR = 0;
    LCD_RES = 0;
Delay10KTCYx(2);   
    LCD_RES = 1;
    Delay10KTCYx(10);
    Write_Command(0x01);      //Software Reset
    Write_Command(0x01);
Write_Command(0x01);

    Command_Write(0xe0,0x01);   //START PLL
    Command_Write(0xe0,0x03);   //LOCK PLL
    Write_Command(0xb0);      //SET LCD MODE  SET TFT 18Bits MODE
    LCD_RS = 1;
    Write_Data(0x0c);          //SET TFT MODE & hsync+Vsync+DEN MODE
    Write_Data(0x80);          //SET TFT MODE & hsync+Vsync+DEN MODE
    Write_Data(0x01);          //SET horizontal size=320-1 HightByte
    Write_Data(0x3f);          //SET horizontal size=320-1 LowByte
    Write_Data(0x00);          //SET vertical size=240-1 HightByte
    Write_Data(0xef);          //SET vertical size=240-1 LowByte
    Write_Data(0x00);          //SET even/odd line RGB seq.=RGB
    Command_Write(0xf0,0x00);   //SET pixel data I/F format=8bit
    Command_Write(0x3a,0x60);   // SET R G B format = 6 6 6
    Write_Command(0xe6);        //SET PCLK freq=6.4MHz  ; pixel clock frequency
    LCD_RS = 1;
    Write_Data(0x00);
Write_Data(0xe7);
Write_Data(0x4f);
Write_Command(0xb4);      //SET HBP,
    LCD_RS = 1;
Write_Data(0x01); //SET HSYNC Total 440
Write_Data(0xb8);
Write_Data(0x00); //SET HBP 68
Write_Data(0x44);
Write_Data(0x0f); //SET VBP 16=15+1
Write_Data(0x00); //SET Hsync pulse start position
Write_Data(0x00);
Write_Data(0x00); //SET Hsync pulse subpixel start position
    Write_Command(0xb6);        //SET VBP,
    LCD_RS = 1;
    Write_Data(0x01); //SET Vsync total 265=264+1
Write_Data(0x08);
Write_Data(0x00); //SET VBP=19
Write_Data(0x13);
Write_Data(0x07); //SET Vsync pulse 8=7+1
Write_Data(0x00); //SET Vsync pulse start position
Write_Data(0x00);
    Write_Command(0x2a);      //SET column address
    LCD_RS = 1;
    Write_Data(0x00);          //SET start column address=0
    Write_Data(0x00);
    Write_Data(0x01);         //SET end column address=319
    Write_Data(0x3f);
    Write_Command(0x2b);      //SET page address
    LCD_RS = 1;
    Write_Data(0x00);         //SET start page address=0
    Write_Data(0x00);
    Write_Data(0x00);         //SET end page address=239
    Write_Data(0xef);
    Write_Command(0x13);      //SET normal mode
    Write_Command(0x29);      //SET display on
    }

/*************************************************/
    void WindowSet(unsigned int s_x,unsigned int e_x,unsigned int s_y,unsigned int e_y)
    {
    Write_Command(0x2a);      //SET page address
    LCD_RS = 1;
    Write_Data((s_x)>>8);         //SET start page address=0
    Write_Data(s_x);
    Write_Data((e_x)>>8);         //SET end page address=319
    Write_Data(e_x);

    Write_Command(0x2b);      //SET column address
    LCD_RS = 1;
    Write_Data((s_y)>>8);         //SET start column address=0
    Write_Data(s_y);
    Write_Data((e_y)>>8);         //SET end column address=239
    Write_Data(e_y);
    }

    /*************************************************/
    void FULL_ON(unsigned long dat)
    {
    unsigned x,y;
    WindowSet(0x0000,0x013f,0x0000,0x00ef);
    Write_Command(0x2c);
    for(x=0;x<240;x++)
    {
    for(y= 0;y<320;y++)
    {
        SendData(dat);
    }
    }
    }

    /*************************************************/
    void QUADS(void)
    {
    unsigned i,j;
    WindowSet(0x0000,0x013f,0x0000,0x00ef);
    Write_Command(0x2c);
    for(j= 0 ;j<120;j++)
      {
        for(i=0;i<160;i++)
        {
        SendData(0x0000FF);             //blue
        }
        for(i=0;i<160;i++)
        {
        SendData(0xFF0000);             //red
        }
    }
    for(j= 0 ;j<120;j++)
      {
        for(i=0;i<160;i++)
        {
        SendData(0xFFFF00);             //yellow
        }
        for(i=0;i<160;i++)
        {
        SendData(0x00FF00);             //green
        }
    }
    }

 /*************************************************/
    void main(void)
    {
TRISA = 0b00000000;
        PORTA = 0b00000000;
        TRISB = 0b00000000;
        PORTB = 0b00000000;
        TRISC = 0b00000000;
        PORTC = 0b00000000;
   
Delay10KTCYx(50);
Delay10KTCYx(50);
Init_SSD1963(); // Initialize the display
while(1)
{
Delay10KTCYx(50);
  Delay10KTCYx(50);
QUADS();
          Delay10KTCYx(50);
  Delay10KTCYx(50);
Delay10KTCYx(50);
  Delay10KTCYx(50);
FULL_ON(0xff0000); //red
Delay10KTCYx(50);
  Delay10KTCYx(50);
  Delay10KTCYx(50);
  Delay10KTCYx(50);
FULL_ON(0x00ff00); //green
  Delay10KTCYx(50);
  Delay10KTCYx(50);
Delay10KTCYx(50);
  Delay10KTCYx(50);
  FULL_ON(0x0000ff); //blue
  Delay10KTCYx(50);
  Delay10KTCYx(50);
  Delay10KTCYx(50);
  Delay10KTCYx(50);
        }

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #243 en: 23 de Marzo de 2010, 16:09:38 »
gracias por tu aporte, estoy seguro que a muchos les ayudará.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado fantabuloso

  • PIC10
  • *
  • Mensajes: 24
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #244 en: 30 de Marzo de 2010, 11:11:56 »
Navegando encontré este manulacito muy básico para principiantes, por ahí le sirve a alguien:

Manual C18

Saludos

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #245 en: 02 de Abril de 2010, 23:59:34 »
Recién empezando con C18, no está nada mal el lenguaje, se parece a cualquier C :mrgreen:

Solo que la forma de usar las interrupciones y el uso de 232, adc, i2c, me parece que son algo diferentes al CCS que hasta hace poco era mi único usado.

En fin, quisiera preguntarles a los entendidos en C18 y como todo buen fanático o quizá más por costumbre sobre una librería lcd_flex, en la que se pueda definir cualquier pin para el uso del LCD, casi sin restricción, como las buenas librerías flex que para CCS hay. O la librería xLCD.h que lleva el C18 se puede configurar a cualquier pin, si así fuera como lo hago?

De no ser así, quisiera tratar de adaptar a C18 una librería flex_lcd.c para CCS, y vi que puede ser un trabajo complicado, al menos con mis recientes pocos conocimientos sobre el C18.

Existen algunas funciones propias del C18, como en el caso del CCS, un output_bit por ejemplo, o un output_high? En caso de existir donde puedo encontrar su ayuda correspondiente?

Bueno, seguiré leyendo a ver que pillo, muchas gracias

saludos.
.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #246 en: 03 de Abril de 2010, 01:03:51 »
xLCD.h no es tan flexible como flex_lcd, se puede seleccionar entre usar el nible bajo o alto de un puerto (No cualquier pin) para los datos y cualquier pin para los pines de control.

Para trabajar con 8 pines de datos hay que sacar los comentarios a #define BIT8.

Para trabajar con 4 pines y en el nible alto del puerto hay que sacar el comentario a #define UPPER.

Que puerto utilizar para los datos se define en las siguientes lineas:

Código: C
  1. /* DATA_PORT defines the port to which the LCD data lines are connected */
  2.  #define DATA_PORT                      PORTB
  3.  #define TRIS_DATA_PORT                 TRISB

y los pines de control:

Código: C
  1. #define RW_PIN   LATBbits.LATB6                 /* PORT for RW */
  2.  #define TRIS_RW  TRISBbits.TRISB6      /* TRIS for RW */
  3.  
  4.  #define RS_PIN   LATBbits.LATB5                /* PORT for RS */
  5.  #define TRIS_RS  TRISBbits.TRISB5      /* TRIS for RS */
  6.  
  7.  #define E_PIN    LATBbits.LATB4                /* PORT for D  */
  8.  #define TRIS_E   TRISBbits.TRISB4      /* TRIS for E  */

Ya definido esto, hay que agregar al proyecto el archivo xLCD.h y todos los archivos fuente ubicados en C:\MCC18\src\pmc_common\XLCD para que los compile y genere los archivos objetos con las modificaciones.


Citar
Existen algunas funciones propias del C18, como en el caso del CCS, un output_bit por ejemplo, o un output_high? En caso de existir donde puedo encontrar su ayuda correspondiente?

No, se trabaja con las estructuras definidas para cada registro, por ejemplo:

Código: C
  1. extern volatile near union {
  2.   struct {
  3.     unsigned RB0:1;
  4.     unsigned RB1:1;
  5.     unsigned RB2:1;
  6.     unsigned RB3:1;
  7.     unsigned RB4:1;
  8.     unsigned RB5:1;
  9.     unsigned RB6:1;
  10.     unsigned RB7:1;
  11.   };
  12.   struct {
  13.     unsigned INT0:1;
  14.     unsigned INT1:1;
  15.     unsigned INT2:1;
  16.     unsigned CCP2:1;
  17.     unsigned :1;
  18.     unsigned PGM:1;
  19.     unsigned PGC:1;
  20.     unsigned PGD:1;
  21.   };
  22. } PORTBbits;

Para leer el estado de un pin se colocaría:

Código: C
  1. if(PORTBbits.RB0==1){....}


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #247 en: 03 de Abril de 2010, 14:13:14 »
ok, me tendré que conformar entonces jeje.

Entonces no creo que haya una forma, al menos sencilla, de pasar librería de CCS a C18.

Seguiré estudiando el C18, que con la costumbre al CCS, cuesta un poco... :(

saludos, gracias por responder suky.
.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #248 en: 03 de Abril de 2010, 14:40:04 »
ok, me tendré que conformar entonces jeje.

Entonces no creo que haya una forma, al menos sencilla, de pasar librería de CCS a C18.

Seguiré estudiando el C18, que con la costumbre al CCS, cuesta un poco... :(

saludos, gracias por responder suky.

hola Cryn,
de hecho que es un poco forzado el moverte de CCS a C18 o viceversa, el C18 practicamente no tiene un manual tan explicito como lo tiene CCS (es un problema de los de microchips), personalmente sufri mucho cuando pase de CCS a C18, esperaba un entorno muy similar al CCS e inclusive los comandos y ejemplos y todo eso, por ello me anime hace 3 años a realizar estos ejemplos de aplicacion. Dejame decirte que lo mismo sucede en los demàs compiladores C30 y C32, solo hay librerias pero para cosas más grandes como por ejemplo procesamiento de voz, audio, o el famoso USB HOST para pendrives, o sino librerias para manejar FAT32, codigos que estilan esas magnitudes.

paciencia, mucha paciencia estimado Cryn y que la fuerza te acompañe !!!!
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #249 en: 03 de Abril de 2010, 14:45:03 »
Entonces no creo que haya una forma, al menos sencilla, de pasar librería de CCS a C18.

Si, y es sencillo teniendo una idea de C18, déjame hacerme un tiempo y la hago para que vean que modificaciones hay que ir teniendo en cuenta.  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Cursillo en C18. Flex_lcd y utilización de printf.-
« Respuesta #250 en: 03 de Abril de 2010, 19:09:51 »
Bueno, aquí les dejo una librería realizada a partir de flex_lcd utilizada en CCS en donde se puede definir cualquier pin para su utilización. Se tiene 2 archivos, flex_lcd_c18.h y flex_lcd_c18.c, ambos debemos colocarlos en la carpeta del proyecto y agregarlos al proyecto. El archivo *.h tiene las definiciones de pines, y para modificarlos debemos cambiar las siguientes lineas:

Código: C
  1. #define DATA_PIN_7      LATBbits.LATB7
  2. #define DATA_PIN_6      LATBbits.LATB6
  3. #define DATA_PIN_5      LATBbits.LATB5
  4. #define DATA_PIN_4      LATBbits.LATB4
  5.        
  6. #define READ_PIN_7      PORTBbits.RB7
  7. #define READ_PIN_6      PORTBbits.RB6
  8. #define READ_PIN_5      PORTBbits.RB5
  9. #define READ_PIN_4      PORTBbits.RB4
  10.        
  11.        
  12. #define TRIS_DATA_PIN_7       TRISBbits.TRISB7
  13. #define TRIS_DATA_PIN_6       TRISBbits.TRISB6
  14. #define TRIS_DATA_PIN_5       TRISBbits.TRISB5
  15. #define TRIS_DATA_PIN_4       TRISBbits.TRISB4
  16.        
  17.        
  18. #define E_PIN   LATBbits.LATB2
  19. #define RS_PIN  LATBbits.LATB0
  20. #ifdef USE_RW
  21.         #define RW_PIN  LATBbits.LATB1
  22. #endif
  23.        
  24. #define TRIS_E  TRISBbits.TRISB2
  25. #define TRIS_RS TRISBbits.TRISB0  
  26. #ifdef USE_RW
  27.         #define TRIS_RW TRISBbits.TRISB1
  28. #endif

Parecen muchos pero es sencillo.
Además agregue typedef para usar int8, int16 y int32 y no se pierde la costumbre  :D

Código: C
  1. /* ** Definicion de tipo de variables **/
  2. typedef unsigned char       int8;
  3. typedef unsigned int            int16;
  4. typedef unsigned long       int32;
  5. /* ** No olvidarse de short long de 24-bits ** */

Otro detalle que he colocado es mediante un define FCY indicar que frecuencia va a trabajar el microcontrolador para calcular las demoras necesarias para la librería:

Código: C
  1. #define FCY 20000000UL
  2. #define _delay_100us() Delay100TCYx(FCY/4000000UL)
  3. #define _delay_5ms() Delay1KTCYx(FCY/800000UL)



Ejemplo de utilización:

Código: C
  1. #include "flex_lcd_c18.h"
  2.  
  3.  
  4. void main(void){
  5. char Buffer[12]={"\n2 linea..."};
  6.  
  7.         lcd_init();
  8.        
  9.         lcd_putrs("\f1 Linea."); // El string se almacena en la rom
  10.         lcd_puts(Buffer);// El string proviene de un arreglo en ram
  11.  
  12.         while(1){}
  13.  
  14. }



Ahora para utilizar printf con el lcd no es tan directo como en CCS, hay que trabajar un poquito más  :mrgreen: C18 para seleccionar la función que utilizará para enviar datos a través de printf utiliza una variable definida como *stdout en el archivo stdout.c. Dependiendo del valor que posea seleccionará entre enviar datos por el puerto seríal (valor default) o utilizar la función que el usuario decida modificando el archivo _user_putc.c.
Entonces debemos agregar al proyecto el archivo _user_putc.c ubicado en ..\MCC18\src\extended\stdclib


y a él hacerle las siguientes modificaciones:

Código: C
  1. extern lcd_putc(unsigned char c);
  2.  
  3. void
  4. _user_putc (unsigned char c)
  5. {
  6.         lcd_putc(c);
  7. }

Con esto ya podemos, modificando el valor de stdout, seleccionar entre escribir en el LCD o enviar por el puerto serial al utilizar la función printf. Veamos un ejemplo:

Código: C
  1. #include "flex_lcd_c18.h"
  2. #include <usart.h>
  3. #include <stdio.h>
  4.  
  5. void main(void){
  6. char Buffer[12]={"\n2 linea..."};
  7. unsigned char Variable=125;
  8.  
  9.         lcd_init();
  10.         OpenUSART(USART_TX_INT_OFF & USART_RX_INT_ON & USART_ASYNCH_MODE & USART_EIGHT_BIT &
  11.         USART_CONT_RX & USART_BRGH_HIGH,129); // 9600,8,n,1
  12.  
  13.         // Modificamos para utilizar función del usuario, o sea escribir en LCD.-
  14.         stdout =_H_USER;
  15.         printf("Var= %u",Variable);
  16.  
  17.         // Modificamos para utilizar nuevamente puerto serial.
  18.         stdout =_H_USART;
  19.         printf("Var= %u",Variable);
  20.  
  21.         while(1){}
  22.  
  23. }


Adjunto proyecto.


Saludos!
 

No contesto mensajes privados, las consultas en el foro

Desconectado cristiancrm

  • PIC10
  • *
  • Mensajes: 24
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #251 en: 22 de Mayo de 2010, 12:19:24 »
Hola, amigos;

Disculpen la ignorancia, pero recién acabo de comenzar con C18 y me gustaría adentrarme de manera de poder gestionarlo favorablemente.
Mi duda es la siguiente; cómo se setea la frecuencia del Xtal con la que trabajará el micro? Estuve viendo en el MPLAB 8.46, pero no encontré dicha opción.
Alguien podrá ayudarme?

Muchas gracias!!

Saludos.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #252 en: 23 de Mayo de 2010, 16:30:55 »
Tu pregunta puede ser respondida de la siguiente manera :P:

- Si te refieres a configurar una velocidad para que el programa una vez grabado al micro corra a esa velocidad, no es necesario hacerlo, pues el MPLAB no configura eso, es más ningún compilador sabe a que frecuencia va a trabajar tu micro, simplemente se hace algunas veces alguna referencia para saber la velocidad y de esta manera calcular los retardos o algunas configuraciones en temporizaciones.
Uno al hablar de código se puede referir a configurar el tipo de Oscilador:
*INTERNO
*LP valores menores a 1MHz
*XT Mayores a 1MHz pero menores a 4MHz
*HS Mayores a 4MHz
*Con PLL , etc...

- Si te refieres a la velocidad para la simulación con MPLAB SIM, una vez que selecciones en el menú debbuger MPLAB SIM, te vas a Setting dentro de ese mismo menú y en la pestaña OSC/TRACE colocas el valor de frecuencia para la simulación.
.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #253 en: 25 de Mayo de 2010, 11:45:26 »
Hola, amigos;

Disculpen la ignorancia, pero recién acabo de comenzar con C18 y me gustaría adentrarme de manera de poder gestionarlo favorablemente.
Mi duda es la siguiente; cómo se setea la frecuencia del Xtal con la que trabajará el micro? Estuve viendo en el MPLAB 8.46, pero no encontré dicha opción.
Alguien podrá ayudarme?

Muchas gracias!!

Saludos.

te refieres a esto?

#define FCY 20000000UL

por ejemplo ahi se setea que el cristal del chip sera de 20MHZ.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Cursillo en C18 para PICS DESDE CERO
« Respuesta #254 en: 26 de Mayo de 2010, 10:26:44 »
Hola, amigos;

Disculpen la ignorancia, pero recién acabo de comenzar con C18 y me gustaría adentrarme de manera de poder gestionarlo favorablemente.
Mi duda es la siguiente; cómo se setea la frecuencia del Xtal con la que trabajará el micro? Estuve viendo en el MPLAB 8.46, pero no encontré dicha opción.
Alguien podrá ayudarme?

Muchas gracias!!

Saludos.

te refieres a esto?

#define FCY 20000000UL

por ejemplo ahi se setea que el cristal del chip sera de 20MHZ.

En ese caso es solo una definición, para utilizarla despues en algun calculo que realice el programador. C18 no es como CCS.


Saludos!
No contesto mensajes privados, las consultas en el foro


 

anything