Dudas con el compilador XC8

Si muchas gracias ya funciono correctamente el circuito, me agrada MPLAB X mas que los otros programas como el CCS o el que funcionaba con el compilador pbp, Y e intentado aprender sobre este programa, talves alguien tenga un ejemplo que contenga varias cosas utiles para seguir aprendiendo, estaria genial, como un ejemplo con los ADC, comunicacion serial o tambien utilizando los timer, poniendo el pic en modo sleep, o usando PWM, cualquier cosa les agradeceria y me ayudaria a conocer mas como funciona :D :D :D
 
Hola,

Pues si quieren ver mis videos sobre MPLABX usando el compilador XC8, aqui estan,
empezare a ver el microcontrolador PIC18F25K80 las caracteristicas de este es que puede operar hasta 64Mhz es decir 16 MIPS, y tiene una memoria de programa de 32kb y memoria RAM de 3.6 Kb, por ahora en el video muestro el PIC18F25K20.




¡Saludos!
 
hola amigos buen día hoy les escribo porque tengo una duda que me tiene loco y no se como resolver.. tengo poco tiempo trabando con el xc8.. sinceramente un poco fastidioso sobretodo al compilar pero bueno ahí vamos.. les escribo por algo quizá un poco tonto pero que quiero resolver.. es que al escribir en mi código lo mas básico #include <xc.h> tengo un bombillo de alerta en el lado izquierdo.. por que sera eso? a que se deberá? y como podre resolverlo?? espero puedan ayudarme.. les adjunto una imagen.. saludos cordiales y gracias de antemanoinclude.png
 
Si colocas el ratón encima de la bombilla (bombillo) y esperas unos segundos, saldrá el mensaje de error (o de advertencia) en un globo o mensaje flotante y sabrás el porqué de la presencia de la bombilla.

El mensaje quizás salga también si colocas el ratón encima del "#include"
 
hola buen día. gracias Joaquin por contestar. Si ya sabia que daba el mensaje si le pones el cursor sobre el bombillito solo que se me olvido agregar el mensaje.. el mismo es: "there are unresolved include inside <xc.h>". en español seria algo como que hay algo sin resolver dentro del include. no es muy claro por eso les pido la ayuda.. espero puedan ayudarme.. saludos y gracias de nuevo.
 
hola amigos buenos días.. Hoy escribo por aquí porque tengo una gran duda de la cual no consigo información, es que estoy aprendiendo algunas cosas en xc8 y veo que en muchos casos de los ejemplos que veo (sobre todo cuando se habla de string) en las funciones o en los parámetros de la misma se usa un asterisco (*) junto a la variable. pongo algunos ejemplos:

void Lcd_printf(char *data)
Lcd_write_data_port(*data)


mi duda es por que se usan los asteriscos en las variables?? para que sirven??
espero puedan ayudarme con esta duda.. gracias de antemano.. saludos
 
Significa que son punteros directos de variables en memoria.
El compilador interpreta que se pueden usar para ocupar un espacio dedicado a una cadena en este caso "char"
Depende de cada tipo designado, la interpretación, ya sea de ingreso o de retorno.
De cualquier forma el * asigna un puntero con longitud especificada por el máximo permitido por el compilador.

Es decir...
char data* = 'Hola';
printf (*data);
Escribe: "Hola"

Algo así como:
char *data [5] = {'H', 'o', 'l', 'a'};
printf (*data);
Escribe: "Hola"
 
hola de nuevo amigos.. Darkbytes gracias por la explicación me ilustro bastante.. con lo que me diste y mas info que busque por google pude avanzar en mi proyecto..
hoy escribo porque tengo de nuevo una duda.
pongamos el mismo ejemplo anterior pero supongamos que no quiero que se escriba "hola" sino quiero que se escriba el valor de una variable x.
me explico mas, supongamos que en una variable por ejemplo "temp" tengo un valor en binario de "00001011" (decimal = 11) como hago para escribir ese valor desde la variable???
espero que quede clara mi explicacion..
gracias de antemano por su ayuda..
saludos..
 
el problema radica en que no uso ninguna librería especifica sino una que yo mismo hice y no contemple eso.. quiza me toque agregarle pero necesito saber cual es el proceso.. creo que para hacer lo que necesito se usa algo como esto= printf ("*%.3g", variable) pero no estoy seguro y tampoco se el significado de eso.. lo se porque lo vi en algún vídeo..
si alguien mas puede darme algo de info seria genial..
espero puedan ayudarme.
saludos cordiales..
 
Hola. Estoy empezando a aprender a programar los microcontroladores PIC y estoy haciendo la práctica más fácil de encender un LED y apagarlo.
E
l problemas que tengo es que cuando conecto el microcontrolador a la corriente el LED se queda encendido sin apagarse.
Aquí les dejo la programación. (Estoy utilizando el PIC16F628A)
C:
#pragma config FOSC = XT        // Oscillator Selection bits (XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF    // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
#pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
#pragma config LVP = OFF        // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
#pragma config CPD = OFF        // Data EE Memory Code Protection bit (Data memory code protection off)
#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#include <xc.h>

#define _XTAL_FREQ 4000000

void main(void) {
   TRISBbits.TRISB5 = 0;

    while(1){
            RB5 = 1;
            __delay_ms(500);
            RB5 = 0;
            __delay_ms(500);
    }     
    return;
}
 
Última edición por un moderador:
Acabo de buscar un código similar al tuyo, y lo único que noto diferente es el registro TRISBbits.TRISB5=0 en que directamente declaran TRISB5=0. Me llama la atención pero por las dudas probarlo no va de más.
 
El problemas que tengo es que cuando conecto el microcontrolador a la corriente el LED se queda encendido sin apagarse.
¿Estás usando cristal? Lo digo porque está definido el fuse XT
Para pruebas con LED en el 16F628A, yo usaría esta configuración:
C:
#pragma config FOSC=INTOSCIO, WDTE=OFF, PWRTE=ON, LVP=OFF, BOREN=OFF
En una sola línea defino solo los fuses necesarios y aparte aprovecho el oscilador interno de 4 MHz.
 
Atrás
Arriba