Me gustaría que me ayudaran con Microcode

#1
Mucho gusto soy nuevo y quisiera presentarme con una pregunta
¿alguno de ustedes sabe cual es el código para activar el cristal de cuarzo interno del pic16f628a (para no tener que ponerle un cristal de cuarzo externo de 4 Mhz) ?
para el programa Microcode studio ( mi PC es de 64 bits y el codigo que tengo no lo acepta)

código:

@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT \'Reloj interno solo
@ DEVICE pic16F628A, WDT_OFF \' Watchdog Timer desconectado
@ DEVICE pic16F628A, PWRT_ON \' Power-On Timer conectado
@ DEVICE pic16F628A, BOD_ON \' Brown-Out Detect conectado
@ DEVICE pic16F628A, MCLR_OFF \' Master Clear Externo desconectado
@ DEVICE pic16F628A, LVP_OFF \' Low-Voltage Programming desconectado
@ DEVICE pic16F628A, CPD_OFF \' Data Memory Code Protect desconectado
@ DEVICE pic16F628A, PROTECT_ON \' Program Code Protection conectado ...
 

Fogonazo

Exorcista & Moderador eventual
#2
Mucho gusto soy nuevo y quisiera presentarme con una pregunta
¿alguno de ustedes sabe cual es el código para activar el cristal de cuarzo interno del pic16f628a (para no tener que ponerle un cristal de cuarzo externo de 4 Mhz) ?
para el programa Microcode studio ( mi PC es de 64 bits y el codigo que tengo no lo acepta)

código:

@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT \'Reloj interno solo
@ DEVICE pic16F628A, WDT_OFF \' Watchdog Timer desconectado
@ DEVICE pic16F628A, PWRT_ON \' Power-On Timer conectado
@ DEVICE pic16F628A, BOD_ON \' Brown-Out Detect conectado
@ DEVICE pic16F628A, MCLR_OFF \' Master Clear Externo desconectado
@ DEVICE pic16F628A, LVP_OFF \' Low-Voltage Programming desconectado
@ DEVICE pic16F628A, CPD_OFF \' Data Memory Code Protect desconectado
@ DEVICE pic16F628A, PROTECT_ON \' Program Code Protection conectado ...
:confused: :confused: ¿ Cristal interno ?
 
#4
No es un cristal, es una RC (resistencia capacitor) interno que hace oscilar a lo que tenga que oscilar...

y esta es la instruccion...

INTRC_OSC_NOCLKOUT

el noclkout es para no sincronizar el pic con otros integrados...
 
#5
No es un cristal, es una RC (resistencia capacitor) interno que hace oscilar a lo que tenga que oscilar...

y esta es la instruccion...

INTRC_OSC_NOCLKOUT

el noclkout es para no sincronizar el pic con otros integrados...
OK ahora la siguiente pregunta
¿donde coloco la instrucción y como defino la velocidad de oscilación (4Mhz)?
 
#6
Depende de que versión uses y con que estés compilando si es con pbp o mpasm y con el oscilador interno solo es de 4 MHz no se configura nada mas solo si usas instrucciones que estén ligadas a la velocidad pones define osc 4
 
#7
Depende de que versión uses y con que estés compilando si es con pbp o mpasm y con el oscilador interno solo es de 4 MHz no se configura nada mas solo si usas instrucciones que estén ligadas a la velocidad pones define osc 4
estoy usando la versión 3.0.0.5 del microcode
del picbasic pro es la 2.60

y estoy utilizando mpasm

a y queria saber si el pic16f628a tiene pwm y como lo utilizo
 
#8
prueba asi:

#CONFIG
__config _FOSC_INTOSCIO & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BOREN_OFF &_LVP_OFF & _CPD_OFF & _CP_OFF
#ENDCONFIG

y si tiene PWM y necesitas leer la ficha tecnica, los registros involucrados son estos:
 

Adjuntos

#11
Me marca error al colocar la configuración.
ERROR Line 11: Syntax error.
Si, te dará error porque ese tipo de palabra de configuración es para MicroCode StudioX con PBPX >v5.X.X.X

Busca el archivo "16F628A.INC" en la carpeta de instalación de PBP.
Ahí verás los fuses por defecto de la palabra de configuración.
Verás que está condicionada para dos tipos de compilación por una instrucción IFDEF
La parte que debes modificar es la parte ELSE.

Ésto es lo que debes ver dentro del archivo:
Código:
    NOLIST
    ifdef PM_USED
        LIST
        include 'M16F62xA.INC'  ; PM header
        device  pic16F628A, xt_osc, wdt_on, mclr_on, lvp_off, protect_off
        XALL
        NOLIST
    else
        LIST
        LIST p = 16F628A, r = dec, w = -302
        INCLUDE "P16F628A.INC"  ; MPASM  Header
        [B]__config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF[/B]
        NOLIST
    endif
    LIST
Puedes comentar con ";" (Punto y coma) para mantener la configuración por defecto, o eliminarla.
Después, escribes la palabra de configuración que requieras, en éste caso usando el oscilador interno. (4 MHz.)
Código:
    NOLIST
    ifdef PM_USED
        LIST
        include 'M16F62xA.INC'  ; PM header
        device  pic16F628A, xt_osc, wdt_on, mclr_on, lvp_off, protect_off
        XALL
        NOLIST
    else
        LIST
        LIST p = 16F628A, r = dec, w = -302
        INCLUDE "P16F628A.INC"  ; MPASM  Header
        ;__config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
        [B]__config _FOSC_INTOSCIO & _WDT_OFF & _PWRTE_ON & _LVP_OFF[/B]
        NOLIST
    endif
    LIST
Prueba de esta forma usando MPASM porque mencionas que usas Windows a 64 Bits.

Nota:
Si al usar _FOSC_INTOSCIO aparece un error, usa; _INTRC_OSC_NOCLKOUT

Suerte.
 
#12
Si, te dará error porque ese tipo de palabra de configuración es para MicroCode StudioX con PBPX >v5.X.X.X

Busca el archivo "16F628A.INC" en la carpeta de instalación de PBP.
Ahí verás los fuses por defecto de la palabra de configuración.
Verás que está condicionada para dos tipos de compilación por una instrucción IFDEF
La parte que debes modificar es la parte ELSE.

Ésto es lo que debes ver dentro del archivo:
Código:
    NOLIST
    ifdef PM_USED
        LIST
        include 'M16F62xA.INC'  ; PM header
        device  pic16F628A, xt_osc, wdt_on, mclr_on, lvp_off, protect_off
        XALL
        NOLIST
    else
        LIST
        LIST p = 16F628A, r = dec, w = -302
        INCLUDE "P16F628A.INC"  ; MPASM  Header
        [B]__config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF[/B]
        NOLIST
    endif
    LIST
Puedes comentar con ";" (Punto y coma) para mantener la configuración por defecto, o eliminarla.
Después, escribes la palabra de configuración que requieras, en éste caso usando el oscilador interno. (4 MHz.)
Código:
    NOLIST
    ifdef PM_USED
        LIST
        include 'M16F62xA.INC'  ; PM header
        device  pic16F628A, xt_osc, wdt_on, mclr_on, lvp_off, protect_off
        XALL
        NOLIST
    else
        LIST
        LIST p = 16F628A, r = dec, w = -302
        INCLUDE "P16F628A.INC"  ; MPASM  Header
        ;__config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
        [B]__config _FOSC_INTOSCIO & _WDT_OFF & _PWRTE_ON & _LVP_OFF[/B]
        NOLIST
    endif
    LIST
Prueba de esta forma usando MPASM porque mencionas que usas Windows a 64 Bits.

Nota:
Si al usar _FOSC_INTOSCIO aparece un error, usa; _INTRC_OSC_NOCLKOUT

Suerte.

ya puse el codigo que me diste y si compilo
pero los codigos
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT 'Reloj interno solo
@ DEVICE pic16F628A, WDT_OFF ' Watchdog Timer desconectado
@ DEVICE pic16F628A, PWRT_ON ' Power-On Timer conectado
@ DEVICE pic16F628A, BOD_ON ' Brown-Out Detect conectado
@ DEVICE pic16F628A, MCLR_OFF ' Master Clear Externo desconectado
@ DEVICE pic16F628A, LVP_OFF ' Low-Voltage Programming desconectado
@ DEVICE pic16F628A, CPD_OFF ' Data Memory Code Protect desconectado
@ DEVICE pic16F628A, PROTECT_ON ' Program Code Protection conectado
siguen sin funcionar y me preguntaba si con el codigo que me distes es suficiente para activar el reloj interno del pic sin tener que usar los codigos
 
#13
Me parece que no leíste bien todo lo que expliqué.
Eso que estás poniendo con @ DEVICE, no te va a funcionar porque usas Windows a 64 Bits.
Esa es la palabra de configuración y funciona sin usar MPASM, con PBP 2.60 y en Windows de 32 Bits.

Lo que necesitas es realizar el procedimiento que mencioné.
También puedes compilar el programa con los fuses que establezca el compilador y posteriormente los cambias en el programa que uses para grabar el PIC.
 
#14
Me parece que no leíste bien todo lo que expliqué.
Eso que estás poniendo con @ DEVICE, no te va a funcionar porque usas Windows a 64 Bits.
Esa es la palabra de configuración y funciona sin usar MPASM, con PBP 2.60 y en Windows de 32 Bits.

Lo que necesitas es realizar el procedimiento que mencioné.
También puedes compilar el programa con los fuses que establezca el compilador y posteriormente los cambias en el programa que uses para grabar el PIC.
ya me funciono ya realiza el procedimiento muchísimas gracias
de casualidad hay un post donde pueda aprender a manejar un servo-motor con el microcode que utilizo para que gire 180 grados de esta manera: izquierda enfrente derecha
 
#15
ya me funciono ya realiza el procedimiento muchísimas gracias
de casualidad hay un post donde pueda aprender a manejar un servo-motor con el microcode que utilizo para que gire 180 grados de esta manera: izquierda enfrente derecha
:( SI! :facepalm: en el buscador del foro la encontraras :rolleyes:
Igualmente, si observas los temas destacados en el subforo de microcontroladores, encobtraras un topico muy bueno donde el profe Ricardo nos ayuda y enseña hace ya un buen rato
 
Arriba