DTForuM

Noticias:

  • ..:: D T F o r u M ::.. - Comunidad Técnica -
  • CAR STEREO UNLOCK CODES --> Ahora solo Accesible para Miembros Premium

Noticias

..:: D T F o r u M ::.. - Comunidad Técnica -

Premium Membership

Si abona su suscripción

con PAYPAL

solo costará

U$D 18 POR AÑO

Pague con Paypal o con Tarjeta de Crédito de forma SEGURA!

Nota: Si Ud. anula, elimina o desactiva la suscripción, perderá su calidad de Miembro Premium.

¿Qué es PayPal?

SUSCRÍBASE YA !

Otras formas de pago:

Donar + PREMIUM

Conviertase en MIEMBRO PREMIUM y acceda a más de 10 TeraBytes de información, de forma ilimitada.


No cobramos los archivos ni el material que los usuarios suben, solo les pedimos que cada uno pague por el ancho de banda que consume, ya que cada vez es más costoso el bandwidth y no podemos pagar lo que los usuarios descargan sin ningún tipo de control.

Bienvenido(a), Visitante. Por favor, ingresa o regístrate. ¿Perdiste tu email de activación?
abril 26, 2019, 11:53:46 am

Ingresar con nombre de usuario, contraseña y duración de la sesión

AllDataSheets

Buscar Datasheet

CuentaDigital

Web Amiga

DT-PhoneS

SITEMAP

-----------


Clase Nro 4 de C para PICs

Visitante · 25584

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

hector27

  • Visitante
on: mayo 14, 2009, 19:22:37 pm
Llegó el momento esperado, con la clase 4 empezamos las prácticas.
Como primera medida bajar el MPLAB e instalarlo:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

Luego bajar el C18 (en este caso tendrán que registrarse, la version para estudiantes (nuestro caso) es gratis, es full (no esta limitada en ninguna de sus funciones), pero tiene vencimiento:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en536656
Para compatibilizar los proyectos entre todos, favor de instalar el C18 en la carpeta donde se instala tambien el MPLAB:
"C:\Archivos de programa\Microchip"

Para la serie 16F usaremos el mikroC, mas adelante.:
http://www.mikroe.com/en/download/
La version demo en este caso no vence, pero está limitada a 2K de código. Para los ejemplos que veremos será suficiente.

A bajar e instalar todo !!!






Desconectado nonoserv

  • Full Member
  • ****
    • Mensajes: 77
    • ACTIVIDAD:
      0%
    • DT$ 49
Respuesta #1 on: mayo 15, 2009, 17:41:16 pm
         Me engancho
                    Todavía me falta practicar un poco más los dos últimos
                    ejercicios de la clase 2  desde Punteros hasta el final
                   creo que son lo fundamental de la potencia del C..
                                            Esperando hasta pronto.


hector27

  • Visitante
Respuesta #2 on: mayo 16, 2009, 22:28:33 pm
TP24
Hoy aprenderemos hacer o iniciar un proyecto vacio (sin codigo) con el MPLAB, al cual luego le escribiremos el código.
Para compatibilizar el uso del MPLAB entre todos, ese proyecto se deberá colocar en la carpeta:
C:\DESARRO\curso\primer proyecto
Por lo tanto, lo primero es crear esa carpeta.

Luego ejecutamos el MPLAB y nos encontraremos con la figura proy1. Deberan ir al menu project y ejecutar el "project wizard" tal cual alli se indica.
Aparece la figura proy2, y presionan siguiente.
Aparece la figura proy3 y deben elegir alli el PIC a utilizar, en nuestro caso será PIC18F2550. Luego presionan siguiente.
Aparece la figura proy4, y alli deben elegir que el compilador es el MPLAB C18, como alli se indica. Luego presionan siguiente.
Aparece la figura proy5, alli hacen browse y van al directorio c:\desarro\curso\primer proyecto; eligen como nombre del proyecto proyectoNro1 y presionan siguiente. Las figuras proy6, 7 y 8 muestran estos pasos. Presionan siguiente
Aparece la figura  proy9 en donde podemos incluir codigo ya escrito; en nuestro caso no colocamos nada y presionamos siguiente.
Aparece la figura proy10 en donde se ve un resumen y presionamos finalizar.
Aparece la figura proy11 donde nos pide guardar el espacio de trabajo (workspace), presionamos guardar.
Aparece la figura proy12, con el proyecto iniciado. Salgan del programa

En el proximo TP pondremos codigo.





hector27

  • Visitante
Respuesta #3 on: mayo 17, 2009, 18:13:04 pm
TP25
Primero checkearemos que esta todo bien, para ello abrimos el proyectoNro1 y vamos al menu de la figura proy13, presionamos lo que alli se indica e ingresamos a la pantalla de la figura proy14 donde vemos el directorio de salida. Si no es correcto lo corregimos.
Luego revisamos el directorio intermedio como se ve en proy15 y proy16. Tambien checkeamo que los directorios indicados en proy17,proy18 y pry19 sean correctos.
Luego guardamos es proyecto como se indica en proy20.
Entramos al menu indicado en proy21 y chequeamos tambien los directorios indicados en las figuras proy22 y proy23
Luego como se indica en proy24 creamos un nuevo archivo, al cual guardamos con el nombre de main1.c, como se indica en proy25 y proy26
Nos queda la pantalla como en proy27, a la cual le ingresamos (copiando y pegando) el código del TP1.


hector27

  • Visitante
Respuesta #4 on: mayo 17, 2009, 18:25:16 pm
Continuamos con el TP25.
Una vez pegado el codigo, debemos incluirlo en el proyecto, como se indica en la figuras proy28 y proy29, quedando el explorador del proyecto como se indica en la figura proy30, en la cual si hacemos doble click sobre el archivo main1.c, aparece el codigo como se indica en proy31.
Procedemos a compilar el codigo como se indica en proy32, obteniendose el resultado indicado en proy33.
En proy34  podemos ver que se genero el archivo ProyectoNro1.hex, que es el que deberiamos grabar en el micro, lo cual no haremos pues no sirve de nada.
Esto compilación de un codigo que no hace nada nos ha servido para ver si tenemos todo configurado correctamente.
El MPLAB es bastante complejo con la configuracion de los directorios de trabajo, pues tiene demasiados para mi gusto; pero por suerte luego sólo copiaremos el proyecto con otro nombre y no deberemos trabajar tanto, pues el trabajo ya lo hicimos esta vez.
Avisen como les ha funcionado.


Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #5 on: mayo 18, 2009, 16:15:09 pm

Boticario

Excelente, la descripción del setup del MPLAB esta clarísima, “parabens”
 graciassss graciassss
Mas no encuentro el TP1   ¿????

Desde ya gracias and keep the good work
 abrazoo
jjose


hector27

  • Visitante
Respuesta #6 on: mayo 18, 2009, 18:27:49 pm
Es este, el cual hicimos para PC en la clase nro 2.
http://www.dtforum.info/index.php?topic=74366.msg1010778765#msg1010778765

Aqui tambien lo subo:
#include <stdio.h>
#include <stdlib.h>

void main(void)
{
printf("Hola DTforum");
return;
}


Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #7 on: mayo 18, 2009, 18:58:14 pm
disculpa por la pregunta

pensé que seria algún programa ya visando especificidades del PIC
entendí, grato.


abcs

jjose



hector27

  • Visitante
Respuesta #8 on: mayo 20, 2009, 20:04:04 pm
Hoy tenemos el TP26.
Este proyecto hace destellar un led de la placa (bit 0 del puerto B), estando un segundo encendido y un segundo apagado, y así sucesivamente.
El programa en sí es muy sencillo, si ven solo la funcion main, pero quizas se asusten un poco con lo que está fuera de la funcion principal, y que fundamentalmente es la configuracion del PIC, pero calma, los vamos a ver detenidamente.
Adjunto todo el proyecto. Intenten primero copiar solo los archivos *.c y *.h en un proyecto que uds hayan iniciado, para ver como resulta, sino usen el proyecto completo y cuenten que les pasó.
Recuerden que en la placa esta el jumper JP6 que si lo instalan entre pines 1y2 la placa se alimenta desde el trafo de 12+12 conectado a JP10, pero si instalan el jumper entre pines 2 y 3 de JP6, la placa se alimenta desde la conexion USB (deben usar un cable USBA - USBB, como los de las impresoras).
Quiero ver las fotos de la plaqueta con el led encendido.
Adivinen a que velocidad de reloj esta corriendo el micro (el cristal es de 4 MHz en la placa) !
(ayuda: no es 4MHz, hay un PLL dentro del PIC que multiplica la frecuencia del cristal)



hector27

  • Visitante
Respuesta #9 on: mayo 21, 2009, 21:00:33 pm
Empezamos a "desmenuzar" el programa del TP26

En esta linea:

#include <p18f2550.h>

incluyo un archivo de cabecera (header), ya incluido en el MPLab (aunque lo adjunto tambien), donde estan las definiciones de los registros del PIC, y sus respectivos bits (cada registro se define como una estructura, que incluye los bits de ese registro como variables dentro de la estructura).

En las otras lineas defines el tipo de oscilador. El PIC puede usar diferentes tipos de oscilador y nosotros debemos indicar cual utilizaremos. En este caso se indica que el oscilador es un cristal de frecuencias igual o menores que 4MHz, y que uso el PLL:
#pragma config FOSC = XTPLL_XT

Estas son todas las posibilidades de reloj para este PIC en particular (nosotros estamos usando la numero 2):

1. XT Crystal/Resonator
2. XTPLL Crystal/Resonator with PLL enabled
3. HS High-Speed Crystal/Resonator
4. HSPLL High-Speed Crystal/Resonator with PLL enabled
5. EC External Clock with FOSC/4 output
6. ECIO External Clock with I/O on RA6
7. ECPLL External Clock with PLL enabled and FOSC/4 output on RA6
8. ECPIO External Clock with PLL enabled, I/O on RA6
9. INTHS Internal Oscillator used as microcontroller clock source, HS Oscillator used as USB clock source
10. INTXT Internal Oscillator used as microcontroller clock source, XT Oscillator used as USB clock source
11. INTIO Internal Oscillator used as microcontroller clock source, EC Oscillator used as USB clock source, digital I/O on RA6
12. INTCKO Internal Oscillator used as microcontroller clock source, EC Oscillator used as USB clock source, FOSC/4 output on RA6

En nuestro caso, cuando se usa el PLL, el PIC genera mediante el PLL un reloj de 96 MHz a partir de un cristal de 4 MHz, mediante la tecnica de PLL,  es decir tiene un oscilador interno de 96MHz controlado por tension, se lo divide por 24 y se compara en fase con el oscilador de cristal, la señal del comparador de fase actua sobre la tension de control del oscilador de 96 MHz de tal modo de quedar en fase con el cristal de 4 MHz, de ese modo tenemos un oscilador de 96MHz con la calidad de un cristal.
Si no usamos el cristal de 4MHz, y usaramos uno de frecuencia mas alta, podemos usar un preescaler (divisor de frecuencia) para bajar la frecuencia generada por ese cristal. Nosotros lo pusimos en 1, es decir sin preescaler:

#pragma config PLLDIV = 1

Las otras posibilidades son dividir por: 2, 3, 4, 5, 6, 10 y 12.

En nuestro caso el preescales es 1, por lo cual a partir del cristal de 4 MHz, tenemos una frecuencia de oscilador de 96 MHz, que luego pasa a un divisor de frecuencia para general el reloj de la CPU
En nuestro caso es:

#pragma config CPUDIV = OSC3_PLL4

Esto significa que si no usaramos el PLL la frecuencia se divide por 3, y si usamos el PLL se divide por 4. Como nosotros hemos usado el PLL, estamos dividiendo por 4, por lo tanto la frecuencia de relos de nuestra CPU es 96/4= 24 MHz.

Esa frecuencia es conservadora, ya que la frecuencia maxima de trabajo de este PIC es 48MHz. (para los que están acostrumbrados a la serie 16F, encontraran que estos PIC son bastante mas veloces.)

El puerto USB tambien necesita su reloj, y tambien se obtiene a partir de los 96 MHz, mediante un divisor, en nuestro caso divide por 2:

#pragma config USBDIV = 2

Por lo tanto la frecuencia del puerto USB es 48MHz que es la correspondiente a USB2.
De cualquier manera nosotros no estamos usando el puerto USB aún.

Adjunto la hoja de datos de este PIC.

Tambien adjunto imagenes donde pueden ver en el MPLAB como se obtiene el help para estas directivas "pragma" en los diferentes modelos de PIC.


Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #10 on: mayo 22, 2009, 03:50:33 am
caro Boticario

   además de los dos archivos para   la primer plaqueta para hacer prácticas que publicaste en «  en: Abril 22, 2009, 07:45:45 »

         kit1_sch.pdf
         kit1_pcb.pdf

existe algún otro que muestre la colocación de los componentes y jumpers en la parte superior de la plaqueta.

desde ya gracias

jjose


hector27

  • Visitante
Respuesta #11 on: mayo 22, 2009, 08:32:45 am
Por ahora solo usaremos el jumper JP6 intalado como en la foto, que permite alimentar la placa desde 12V de corriente alterna, en JP10.
Adjunto PDF con diagrama y foto de mi placa (esa placa es una version anterior con errores, y hay pequeñas diferencias con la vuestra.)


Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #12 on: mayo 22, 2009, 10:41:45 am
muchas gracias

muy buen curso profe.
tienes una excelente  didáctica

van dt's
 abrazoo
jjose


Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #13 on: mayo 22, 2009, 17:03:19 pm
Profe
yo de nuevo.

Estuve viendo la placa, y me gustaría cambiar algunas posiciones físicas, sin comenzar desde cero.
Principal razón es colocar un zócalo ZIF  para poder cambiar PIC’s sin esfuerzo para los pinos, y que sirva para dip 28Pdip  y  28SPdip.  Y hasta talvez colocar un zócalo de 40 pinos en paralelo.

Seria posible tener los archivos fuente.???

Si no hay problemas, que  programa usaste para diseñar la placa, MULTISSIM / ULTIBOARD   ¿????   O cual otro????

Claro que me comprometo a colocar los archivos finales a disposición para el resto de tus alumnos.



hector27

  • Visitante
Respuesta #14 on: mayo 22, 2009, 19:01:12 pm
en un archivo tienes el esquematico en orcad y el PCB en protel 94; en el otro archivo todo en protel 98


hector27

  • Visitante
Respuesta #15 on: mayo 22, 2009, 19:35:09 pm
Seguimos con la configuración del PIC:

En esta linea:

#pragma config FCMEN = OFF

configuramos el PIC para que no utilice el motitor de reloj a prueba de fallas (FCMEN), Este PIC puede monitorear la señal del oscilador de la CPU (cuando es externo) y si falla, pasar a utilizar un reloj interno. En nuestro proyecto no se usa y por ello está OFF

En esta otra linea:

#pragma config IESO = OFF

Configuramos el PIC para que no utilice una la caracteristica de arranque rapido, utilizando al inicio el clock interno, y una vez que el oscilador externo (con cristal) esta disponible, pasar a usarlo. En nuestro proyecto no se usa y por ello está OFF.

En esta otra linea:

#pragma config PWRT = ON

indicamos que si se utiliza un retardo en el inicio (o reset) para darle tiempo a que el sistema se estabilice. Nuestro proyecto lo utiliza y por ello está ON.


En esta otra linea:

#pragma config BOR = ON

Configuramos el PIC para que haga un reset si la tensión de alimentacion falla (por baja tensión, a los fines de evitar "cuelgues". Nuestro proyecto lo utiliza y por ello está ON.

En esta otra linea:

#pragma config BORV = 1

indicamos el valor de tensión en el que actua el parametro anterior (BOR), con la posibilidad de usar:
0= 4,6 V tipico
1= 4,3 V tipico
2= 2,8 V tipico
3= 2,1 V tipico

En nuestro proyecto usamos 4,3 voltios y por ello se indica 1.


En esta otra linea:

#pragma config VREGEN = OFF

Indicamos que no se utiliza la fuente de alimentación interna de 3,3V para el puerto USB.
Este PIC cuenta con un regulador interno de 3,3V para el puerto USB (que por especificacion de la norma debe trabajar a dicha tensión)
Como en nuestro proyecto no usamos el puerto USB, no usamos este regulador.
Si lo utilizaramos esa tensión podria medirse en el terminal 14 del PIC.





Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #16 on: mayo 23, 2009, 13:34:13 pm
Hi Boticario

mas una vez gracias por tus respuestas y material.

si no estoy equivocado en mi análisis, creo que esta faltando un conector que seria muy útil en la placa.
Seria un conector para poder entrar con algún programador/debugger tipo PICKIT 2 o ICD2, como te muestro en el anexo.

Grande abrazo
 abrazoo abrazoo
jjose


hector27

  • Visitante
Respuesta #17 on: mayo 23, 2009, 15:10:55 pm
Si, seria util.


hector27

  • Visitante
Respuesta #18 on: mayo 23, 2009, 18:19:31 pm
Seguimos otro poco:
En la linea:

#pragma config WDT = OFF


definimos que no utilizamos el watch dog timer (perro guardian)

Es circuito, con el que cuentan, creo, todos los PIC, es un temporizador que si no se inicializa periodicamente, produce un reset del microcontrolador. Sirve para evitar "cuelgues". Obviamente si lo utilizamos, el programa que realicemos debe tener en cuenta su uso.
En nuestro proyecto no se utiliza.

La linea siguiente indica el factor de division que tiene el preescales para el perro guardian. Divide el reloj/4 por ese factor, y ese seria el tiempo limite para inicializar el watch dog y evitar que resetee. En nuestro proyecto esta fijado a ese valor pero no lo utilizamos.

#pragma config WDTPS = 32768


En esta linea:

#pragma config MCLRE = OFF

Indicamo que no utilizamos el terminal de reset para esa funcion (master clear), sino como un puerto mas; por eso esta en OFF.


Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #19 on: mayo 24, 2009, 01:29:33 am

Caro Boticario

Llegue a la triste conclusión que para reservar las líneas RB6 y  RB7 para utilización exclusiva para ICSP, y mantener todas  que tu utilizaste en la placa actual se va a hacer muy complicado con el 2550 o equivalente.

Veo algunas salidas

1> la que mas me gusta es saltar de una vez al 18F4550, y quedarnos con una libertad muy grande de líneas, para lo que ya planeaste, como para alguna expansión futura.
2> eliminar algunas de las líneas actuales   Usar el LCD  solamente para escribir nos permitiría salvar una línea, precisaríamos  eliminar mas una.

Una candidata seria RA2, pin 4, que creo no pasa de una entrada que puede tener 0V o VCC.  Como ya se tiene RA1, pin 3 que a través del potenciómetro puede colocar cualquier voltaje entre VCC y 0V, tal vez se podría eliminar el jumper en RA2 y con esto liberamos mas una línea.

Quedaríamos con las siguientes dos limitaciones

LCD solo permite escritura
El jumper VVC / 0 del pin RA2 no existiría mas

Que te parece le camino

Estoy en la mitad del diseño de la placa, porque como uso Multisim / Ultiboard tuve que empezar de cero en la colocación de los componentes, ya que el diagrama estoy respetando el tuyo, excepto en el ICSP.
Así que tomes la decisión podré continuar.

Grande abrazo

 abrazoo
jjose


hector27

  • Visitante
Respuesta #20 on: mayo 24, 2009, 13:50:38 pm
Estimado José
Tu tienes la libertad de hacer los cambios que quieras; pero yo ya no puedo hacerlo, tengo armada y funcionando la placa, al igual que otros usuarios que ya han hecho la placa y adquirido ese chip. El curso seguirá con la placa como está hecha.
Si tu deseas mejorar la placa, no me opongo, e incluso haré versiones extras de software para tu placa si así lo deseas; pero te repito, el curso seguirá con la placa original.
Saludos!
Héctor


Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #21 on: mayo 24, 2009, 13:51:39 pm
Hola Boticario

Por favor, mas una sugestión para la placa, que olvidé de colocar en la nota anterior

Del modo como están conectados los LED’s D1 a D8, estos irán a encender cuando la línea del PIC este negativa,  lo que siempre se acepta como línea en OFF.

Sugiero cambiar para la disposición en el anexo, donde los LED’s encenderán cuando la línea este en VCC.

Grande abrazo

jjose





hector27

  • Visitante
Respuesta #22 on: mayo 24, 2009, 17:29:51 pm
Seguimos:

En esta linea:
#pragma config LPT1OSC = OFF
se nos permite configurar el consumo del oscilador para el timer 1, si esta en ON es el modo de bajo consumo, apto para aplicaciones portatiles a baterias, pero se pierde algo de estabilidad. En nuestro proyecto no usamos baterias, no usamos el oscilador para el timer 1 y tampoco usamos el timer 1. Lo ponemos OFF.

En esta linea:
#pragma config PBADEN = OFF
es posible configurar mas entradas para el ADC, en el puerto B, bits 0 a 4,  (las entradas normales del ADC estan en el puerto A)
Como no usamos el ADC y necesitamos el puerto B para los LEDs, esa caracteristica esta en OFF


En esta linea:
#pragma config CCP2MX = ON
Se nos permite configurar si el modulador de ancho de pulso sale por el puerto B o por el puerto C, debe estar en ON para que salga por el puerto C, que es nuestro caso, pues el puerto B lo usamos para los LEDs.

En esta linea:
#pragma config STVREN = OFF
nos permite que si hay un error de programa y hacemos desborde del stack el sistema haga RESET (se reinicie). Este micro tiene un stack de 31 niveles. Nuestro proyecto no utiliza esta caracteristica y esta en off.

En esta linea
#pragma config LVP = OFF
se nos permite usar baja tension para programar el micro usando la programacion en el mismo circuito. Nuestro proyecto no utiliza esa caracteristica y esta OFF

En esta linea
//#pragma config ICPRT = OFF
se permitiria tener un puerto dedicado para la programación en el circuito. Solo está disponible para PICs de esta familia de 44 pines, que no es nuestro caso y es por ello que esta comentada y no se usa. De otra manera el compilador dará un error.

En esta linea
#pragma config XINST = OFF
Habilitamos unas intrucciones extras que tienen estos PICs, en nuestro caso no lo usamos. De llegar a usarlos hay que indicarlo en la configuracion del compilador.

En esta linea
#pragma config DEBUG = OFF
se nos permite que los bits 6 y 7 del puerto B se utilicen para la programacion en el circuito, nosotros no usamos esa caracteristica y necesitamos el puerto B completo, por lo cual está en OFF.


Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #23 on: mayo 24, 2009, 22:43:27 pm
CARO BOTICARIO

increíble como nuestras notas se cruzaron en el aire.

te agradezco la disposición y buena voluntad, mas tener dos modelos de placa te criaría una enorme complicación con el material del curso.

Mas también entiendo que si ya hay muchas placas montadas, seria un problema colocar um cambio en ellas..

Nuevamente, te agradezco

abcs


jjose
 


hector27

  • Visitante
Respuesta #24 on: mayo 25, 2009, 12:22:01 pm
Seguimos:

Las siguientes lineas:
#pragma config CP0 = OFF
#pragma config CP1 = OFF
#pragma config CP2 = OFF
#pragma config CP3 = OFF
estan referidas a la proteccion de lectura de la memoria de codigo, para diferentes bloques de la misma, por ejemplo si se CP0 está en ON no podria leerse externamente la memoria de programa desde la direccion 0x0800 a 0x1FFF. En el curso no tememos que alguien nos copie el codigo, por lo cual no usamos esa caracteristica.

Las lineas:
#pragma config CPB = OFF
#pragma config CPD = OFF
Actuan en forma similar a las anteriores, pero referidas a la memoria EEPROM de datos.


Las siguientes lineas:
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRT2 = OFF
#pragma config WRT3 = OFF
Nos permiten, si entan en ON, protejer los distintos bloques de la memoria de programa contra escritura
No lo usamos en nuestros proyectos, por lo cual estan OFF

Las lineas:
#pragma config WRTB = OFF
#pragma config WRTC = OFF
#pragma config WRTD = OFF
Actuan en forma similar a las anteriores, pero referidas a la memoria EEPROM de datos.

Las siguientes lineas:
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
#pragma config EBTR2 = OFF
#pragma config EBTR3 = OFF
Si las colocamos en ON, protegen la lectura de los diferentes bloques de la memoria de programa, pero no la lectura externa, como en el caso de CP0, sino que evita la lectura mediante el uso de tablas desde otro bloque.

Esta linea, actua en forma similar a las anteriores, pero referidas a la memoria EEPROM de datos.
#pragma config EBTRB = OFF


Tags:
 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74