Autor Tema: Mini curso "Programación en XC8"  (Leído 588072 veces)

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

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Mini curso "Programación en XC8"
« Respuesta #330 en: 05 de Octubre de 2015, 19:05:33 »
Una cosa que quedo escondida y que no me di cuenta de ponerlo antes es la siguiente:

Como dije __delay32() el minimo es de 12 ciclos.

Segun la formula calculada

ciclos = Fosc / 2000000

tenemos una frecuencia limite en la cual va a ser valido tener 1us, y que es:

12 * 2000000 = 24Mhz

Es decir por debajo de 24Mhz es imposible crear un delay de 1us con esa funcion, y tal ves tarde 1.4, 2us en ves de 1. Aunque la formula sigue siendo valida. Esto por si termian tardando un poco mas de lo que debe el delay
El minimo tiempo que puede lograrse con __delay32() es 12 * 2 / Fosc

0.75us para 32 Mhz
1.2us para 20Mhz
2.4us para 10Mhz
3us para 8Mhz
6us para 4Mhz

Es algo que debes tener en cuenta:

Si entra 20Mhz , __delay_us(1); va a tardar 1.2us
Si entra 10Mhz , __delay_us(1); va a tardar 2.4us, __delay_us(2); va a tardar 2.4us, __delay_us(3); va a tardar 3us

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Mini curso "Programación en XC8"
« Respuesta #331 en: 05 de Diciembre de 2015, 20:31:57 »
Alguien puede decirme el porque de este error

He probado de añadir la librería timers.h al proyecto pero me sigue dando error.

Gracias.
« Última modificación: 05 de Diciembre de 2015, 20:37:02 por Miquel_S »
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:Mini curso "Programación en XC8"
« Respuesta #332 en: 05 de Diciembre de 2015, 20:41:31 »
Tiene pinta de ser un fallo de haber borrado un fichero, y el makefile te lo esta pidiendo.

Por otro lado:

Citar
/opt/microchip/xc8/v1.34/include/plib/timers.h:31: error: (141) can't open include file "pconfig.h": No such file or directory

En las versiones de XC32 como la v1.34 ya no sirven las plib, hace mucho que no uso xc8 ¿pasa lo mismo en xc8?


Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Mini curso "Programación en XC8"
« Respuesta #333 en: 05 de Diciembre de 2015, 21:35:47 »
Tiene pinta de ser un fallo de haber borrado un fichero, y el makefile te lo esta pidiendo.

Por otro lado:

Citar
/opt/microchip/xc8/v1.34/include/plib/timers.h:31: error: (141) can't open include file "pconfig.h": No such file or directory

En las versiones de XC32 como la v1.34 ya no sirven las plib, hace mucho que no uso xc8 ¿pasa lo mismo en xc8?


Hola juaperser1 el fichero no ha sido borrado se encuentra en la carpeta include/plib, lo que no se el porque no lo abre, he probado de incluirlo en el código pero sigue sin abrirlo.
Si pasa lo mismo en xc8 la verdad no lo se.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Mini curso "Programación en XC8"
« Respuesta #334 en: 05 de Diciembre de 2015, 21:51:20 »
Parece mas un error de direcciones de include. (Aunque estoy mas que seguro que es eso )

Me explico... La direccion de include esta en:

/opt/microchip/xc8/v1.34/include/

Entonces vos cuando haces un include lo haces a partir de esa direccion. Pero dentro del fichero timers.h existe un #include <pconfig.h>
es decir no tiene el plib/, esto hace que lo busque como:

/opt/microchip/xc8/v1.34/include/pconfig.h

La idea es si podes agregar como direccion de include (propiedades del pryecto -> XC8 Compiler -> Include directories):

/opt/microchip/xc8/v1.34/include/plib/

Esperemos que no pida archivos de otros lados tambien  :(
Si agregas esa direccion de ruta, en tu proyecto principal podes hacer

#include <timers.h>

Aunque realmente a veces esas rutas de include funcionan con "timers.h" , con comillas y  no <> , pero bueno. Es tan dependiente del compilador que no se que decirte.
« Última modificación: 05 de Diciembre de 2015, 22:43:51 por KILLERJC »

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:Mini curso "Programación en XC8"
« Respuesta #335 en: 05 de Diciembre de 2015, 21:57:38 »
Puede ser lo que dice killer, pruebalo incluyendo la ruta de búsqueda en las opciones de tu proyecto.

Un saludo.


Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Mini curso "Programación en XC8"
« Respuesta #336 en: 06 de Diciembre de 2015, 06:56:38 »
Siento dar por c..o otra vez, después de probar lo que dice KILLERJC que se me soluciono el problema del include/plib, me sale otro error y por mucho que busque no encuentro donde esta, y al darle clic encima no me enseña donde esta el error.

Este es el codigo:
Código: C
  1. #define _XTAL_FREQ 4000000  //The speed of your internal(or)external oscillator
  2.  
  3. #define USE_AND_MASKS
  4. #include <xc.h>
  5. #include "config.h"
  6. #include <plib/timers.h>
  7.  
  8. unsigned char Timer0Config;
  9.  
  10. void main(void)
  11. {
  12.     TRISBbits.RB0 = 0;  //Seteamos RB0 como salida
  13.     LATB0 = 1;  //RB0 a nivel alto
  14.    
  15.     Timer0Config = TIMER_INT_ON & T0_8BIT & T0_SOURCE_INT & T0_PS_1_1;
  16.     OpenTimer0(Timer0Config);
  17.     WriteTimer0(0xFF);
  18.    
  19.     INTCONbits.TMR0IF = 0;  //Reseteamos el flag de la interrupcion
  20.    
  21.     ei();
  22.    
  23.     while(1)    //Bucle infinito
  24.     {
  25.        
  26.     }
  27. }
  28.  
  29. void interrupt TimerOverflow()
  30. {
  31.     if(INTCONbits.TMR0IF == 1)
  32.     {
  33.         LATB0 = ~LATB0;
  34.         INTCONbits.TMR0IF = 0;
  35.         WriteTimer0(0xFF);
  36.     }
  37. }

Gracias.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Mini curso "Programación en XC8"
« Respuesta #337 en: 06 de Diciembre de 2015, 07:52:05 »
Lo interesante es que yo quite el config.h y probe tu codigo sin cambiar la ruta de include y....

BUILD SUCCESSFUL (total time: 1s)

Luego use este:

Código: C
  1. #define USE_AND_MASKS
  2. #include <xc.h>
  3. #include <plib.h>

Es decir solo le pido que incluya el plib.h y ya eso agrega el timers.h por si solo. Igual como dije probe tu codigo ( copy & paste de aca ) y solo le quite la linea del #include "config.h" (por que tengo un archivo llamado config.c dentro de la carpeta source con esas declaraciones) y compilo sin errores.

Una parte:
Código: [Seleccionar]
Microchip MPLAB XC8 C Compiler (--- Mode) V1.33
Part Support Version: 1.33 (A)
Copyright (C) 2014 Microchip Technology Inc.
License type: Node Configuration

:: advisory: (1233) Employing 18F2550 errata work-arounds:
:: advisory: (1234)  * Corrupted fast interrupt shadow registers

Memory Summary:
    Program space        used    84h (   132) of  8000h bytes   (  0.4%)
    Data space           used     9h (     9) of   800h bytes   (  0.4%)
    Configuration bits   used     7h (     7) of     7h words   (100.0%)
    EEPROM space         used     0h (     0) of   100h bytes   (  0.0%)
    ID Location space    used     8h (     8) of     8h bytes   (100.0%)
    Data stack space     used     0h (     0) of   7A0h bytes   (  0.0%)

make[2]: Leaving directory 'F:/CCS/MPLABx/Prueba/Prueba.X'
make[1]: Leaving directory 'F:/CCS/MPLABx/Prueba/Prueba.X'

BUILD SUCCESSFUL (total time: 1s)
Loading symbols from F:/CCS/MPLABx/Prueba/Prueba.X/dist/default/production/Prueba.X.production.elf...
Loading code from F:/CCS/MPLABx/Prueba/Prueba.X/dist/default/production/Prueba.X.production.hex...
Loading completed

Incluso hice click derecho sobre la funcion WriteTimer0() y le di a Ir a declaracion y me abrio correctamente el timers.h en ambos casos, con plib.h y con el codigo tuyo


-- Si esto sigue asi intenta crear un proyecto de 0, se abra tocado algo sin querer imagino.

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Mini curso "Programación en XC8"
« Respuesta #338 en: 06 de Diciembre de 2015, 08:10:15 »
Gracias KILLERJC también había probado con el include de plib.h y me daba el mismo error, voy a probar de crear un proyecto nuevo.

Gracias.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Mini curso "Programación en XC8"
« Respuesta #339 en: 06 de Diciembre de 2015, 08:29:15 »
Sigo con el mismo error, de todos modos veo que estas usando una versión diferente, no se si probar a actualizar a la versión 1.35.

Saludos!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:Mini curso "Programación en XC8"
« Respuesta #340 en: 06 de Diciembre de 2015, 09:52:01 »
Sigo con el mismo error, de todos modos veo que estas usando una versión diferente, no se si probar a actualizar a la versión 1.35.

Saludos!

Estas incluyendo las rutas de búsqueda en las opciones de proyecto? Incluye solo el xc.h y las plib no incluyas ninguna mas o puede que te de error de que lo tienes duplicado.De toda maneras, bajate el compilador 1.31 el 1.34 a mi me dio problemas.

Un saludo.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:Mini curso "Programación en XC8"
« Respuesta #341 en: 06 de Diciembre de 2015, 09:58:22 »
No voy a estar cerca del ordenador en todo el dia, quizá esta noche, si quieres puedes mandarme el proyecto por privado y le echo un vistazo a la configuración a ver porque no compila.

Puede ser que hayan cambiado las rutas al cambiar de ubicación el proyecto, o cualquier tontería, porque parece eso, la típica tontería que te da dolor de cabeza y luego no es nada.


Un saludo.
« Última modificación: 06 de Diciembre de 2015, 10:00:24 por juaperser1 »

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Mini curso "Programación en XC8"
« Respuesta #342 en: 06 de Diciembre de 2015, 11:11:34 »
Gracias juaperser1,  primero voy a probar con otra versión anterior del compilador ya que la v1.35 por no llevar no lleva ni las librerías. Si no consigo que funcione tendré que seguir con ASM aunque me hubiera gustado aprender ASM y C conjuntamente.

Saludos!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Mini curso "Programación en XC8"
« Respuesta #343 en: 06 de Diciembre de 2015, 18:06:33 »
Al final he podido compilar con la versión v1.33

Gracias a los dos por la ayuda.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:Mini curso "Programación en XC8"
« Respuesta #344 en: 07 de Diciembre de 2015, 09:27:00 »
Citar
Al final he podido compilar con la versión v1.33

Pfff cada vez van peor de verdad, no me gusta que este tipo de cosas te hagan perder tiempo de desarrollo, te da dolor de cabeza intentando ver donde te has equivocado y resulta que la culpa no es tuya...

Me alegro que lo hayas arreglado.

Un saludo


 

anything