Autor Tema: como definir un registro que puede utilizarse en varios pines?  (Leído 1953 veces)

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

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
como definir un registro que puede utilizarse en varios pines?
« en: 07 de Abril de 2023, 16:19:26 »
Cordial saludo
Estoy tratando de configurar el registro "CCP1" para un pwm" con el pic12f1822 y este tiene CCP1  en 2 pines RA0 y RA5, podrian por favor decirme como lo configuro para determinado pin, gracias de antemano.
trabajo en "CCS"
Código: C
  1. #INCLUDE <12F1822.h>
  2. #DEVICE ADC=10
  3. //#USE DELAY(CLOCK=4000000) //Crystal Interno 4MHz
  4. //#use delay(clock=4000000,crystal)//Crystal Externo 4MHz
  5. #use delay(internal=8MHz)
  6. #FUSES NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP,nomclr
  7.  
  8. //#INCLUDE <LCD.C>
  9.  
  10.  
  11.  
  12. #pin_select CCP1=PIN_A2
« Última modificación: 10 de Abril de 2023, 16:17:55 por johenrod »
Si algo parece complicado... es por que esta mal explicado.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:como definir un registro si puede utilizarse en varios pines?
« Respuesta #1 en: 07 de Abril de 2023, 17:32:49 »
Cordial saludo
Estoy tratando de configurar el registro "CCP1" para un pwm" con el pic12f1822 y este tiene CCP1  en 2 pines RA0 y RA5, podrian por favor decirme como lo configuro para determinado pin, gracias de antemano.
trabajo en "CCS"
Código: C
  1. #INCLUDE <12F1822.h>
  2. #DEVICE ADC=10
  3. //#USE DELAY(CLOCK=4000000) //Crystal Interno 4MHz
  4. //#use delay(clock=4000000,crystal)//Crystal Externo 4MHz
  5. #use delay(internal=8MHz)
  6. #FUSES NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP,nomclr
  7.  
  8. //#INCLUDE <LCD.C>
  9.  
  10.  
  11.  
  12. #pin_select CCP1=PIN_A2

Buscando en las hojas de datos tienes lo siguiente con el registro APFCON



Si tu compilador no tiene macros o librerías para manipular ese registro de manera amigable, deberías configurar directamente los bits de ese registro.

No sé si la manipulación de los bits de ese registro es así de simple, en otros microcontroladores, el mapeo de terminales de los periféricos en los terminales físicos del microcontrolador tienen una serie de pasos antes y después de manipularlos. Me imagino que con este microcontrolador debería ser igual.

Obviamente si tu compilador puede enmascarar esos pasos (macros o librerías), no deberías preocuparte.
« Última modificación: 07 de Abril de 2023, 22:28:17 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:como definir un registro si puede utilizarse en varios pines?
« Respuesta #2 en: 08 de Abril de 2023, 10:48:26 »
Gracias DominusDRR,
trade de hacerlo asi   "#pin_select CCP1=PIN_A2" pero me da error en el compilador, me podrias indicar por favor si es mas o menos asi que se declara.
Si algo parece complicado... es por que esta mal explicado.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:como definir un registro si puede utilizarse en varios pines?
« Respuesta #3 en: 08 de Abril de 2023, 11:11:47 »
Gracias DominusDRR,
trade de hacerlo asi   "#pin_select CCP1=PIN_A2" pero me da error en el compilador, me podrias indicar por favor si es mas o menos asi que se declara.

No soy experto en CCS, pero tal vez es algo tan simple como esto:

Código: C
  1. APFCON=0x01; //CCP1 en RA5

Más información, al momento de googlear:

https://www.google.com/search?q=APFCON+CCs&rlz=1C1CHBD_esEC914EC916&oq=APFCON+CCs&aqs=chrome..69i57j33i10i160l2.3327j0j7&sourceid=chrome&ie=UTF-8

https://www.ccsinfo.com/forum/viewtopic.php?t=57523

http://www.ccsinfo.com/forum/viewtopic.php?t=45729&view=next

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:como definir un registro si puede utilizarse en varios pines?
« Respuesta #4 en: 10 de Abril de 2023, 16:13:28 »
Gracias por tus respuestas  DominusDRR
en mi primer mensaje coloque,
Citar
Estoy tratando de configurar el registro "CCP1" para un pwm" con el pic12f1822 y este tiene CCP1  en 2 pines RA0 y RA5
y este no es un registro si no un periferico.
Logre hacerlo asi...

Código: C
  1. #INCLUDE <12F1822.h>
  2. #DEVICE ADC=10
  3. #use delay(internal=8MHz)
  4. #FUSES NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP,nomclr
  5.  
  6. #bit CCP1SEL=getenv("CCP1SEL")
  7.  
  8. void main(void)
  9. {
  10.     // CCP1SEL=1; //CCP1 will now go to RA5
  11.        CCP1SEL=0; //CCP1 will now go to RA2
  12. }
« Última modificación: 10 de Abril de 2023, 16:23:03 por johenrod »
Si algo parece complicado... es por que esta mal explicado.


 

anything