TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: izerw en 23 de Abril de 2007, 02:43:46
-
Hola, bueno este es mi primer post.. y antes de realizar este post he buscado por todo el foro.. y no he encontrado nada al respecto..
Bueno resulta q estoy usando el canal de HPWM de un PIC 16F819, para eso uso el tipico codigo para declarar el CCP1
DEFINE CCP1_REG PORTB
DEFINE CCP1_BIT 3
Pero el problema es q por mas q declaro q el HPWM va ser en B3, me lo saca en B2...
Yo me base en este diagrama (del datasheet) y por lo q entiendo es q tanto B2 como B3 puede usarse el CCP1
(http://img149.imageshack.us/img149/2633/dibujoby4.png)
Se q seria facil decirme q cambie simplemente a B2, pero el problema es q ya hasta realice la placa (PCB) de este proyecto.. y me gustaria saber si hay alguna solucion, en vez de cortar y puentear la placa..
Uso MicroCode Studio con PBP 2.44 y programo con el Pickit2 de Microchip
Espero su amable respuesta... Salu2
-
En el 16F819 CCP1 puede estar asignado a B2 ó a B3 (no a B2 y a B3). Para decidir en cuál de ambos vas a utilizarlo debes usar el fuse correspondiente
Esos fuses en CCS C son:
CCPB2 CCP1 input/output multiplexed with RB2 ó
CCPB3 CCP1 input/output multiplexed with RB3
No se cómo se escribirá este fuse en concreto en PBP pero ...
@ DEVICE PIC16F819,INTRC_OSC_NOCLKOUT,... ¿CCP1_B3? o algo así.
Busca por ahí algo parecido a eso, busca ...
-
Si no sabes cómo hacerlo en software, hazlo en la programación (quema) del µicro.
Para activar el multiplexado debes escribir un 0 en el bit 12 de la palabra de configuración, esto se hace mediante las __config que vienen en los include del µicro.
La otra foma mas sencilla es que a la hora de programar (supongo usas MPLAB), en el menú de "configure" selecciones "configuration bits". Ahí está la opción para que cambies de RB2 a RB3 y viceversa.
-
Buscando los dichosos Fuses encontre esta pagina: http://www.picbasic.co.uk/forum/archive/index.php/t-2690.html
Ahi encontre como cambiar entre B2 y B3
Solo tenia q poner:
@ DEVICE CCPMX_On
Y si lo desactivo me manda el CCP1 a B2..
Sobre la forma de hacerlo como dice Mario.. me imagino q es lo mismo.. en ese registro se puede activar o desactivar el CCPMX (segun lo q lei en el datasheet)
CCPMX: CCP1 Pin Selection bit
1 = CCP1 function on RB2
0 = CCP1 function on RB3
Por cierto.. muchas gracias por responder... y bastante rapido..
Salu2 y nos vemos
-
Que bueno que lo encontraste.
Yo ya no uso los @DEFINE porque si quieres utilizar la serie 18, el programa para ensamblar (PM creo que se llama) ya no te sirve y tienes que utilizar el mpasmwin para ensamblar. Si colocas @DEFINE no te acepta nada.
-
Amigos una duda, he encontrado un circuito en el cual se controla un motor , el terminal negativo de este va conectado a tierra y el ;positivo va a un par de transistores de potencia en configuracion push-pull (uno es pnp y el otro es npn) estos van a travez de un transistor cada uno a los pin es rb 2 y br3 del 16f819 entonces me da la impresion de que la salida de pwm es multiplexada , enviando el pulso alto por rb3 y el pulso bajo por rb2, como si alternara entre una salida y otra, nose sie sto sea posible pero no encuentro otra explicacion de porque se estan usando los 2 pines.