Foros de Electrónica

Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.




Curso tutorial del PIC16F877


       



#41  
fragmir

Registrado: 18 Abr 2008
Mensajes: 20
Ubicación: Mexico
citar
Bueno si a eso te refieres el Mcc18 tiene la libreria usart.h y sw_uart.h con una trae las definiciones de las funciones y la sw es software uart ahí vienen esas librerías, disculpa respecto al diagrama pero no he realizado programas que manejen esta característica del pic.
un saludo.

#42  
carloscm

Registrado: 08 Jul 2008
Mensajes: 6
Ubicación: TLAXCALA, MEXICO
citar
Ok, gracias, espero el link para el mplab

#43  
fragmir

Registrado: 18 Abr 2008
Mensajes: 20
Ubicación: Mexico
citar
Sale Muchachos
Aqui esta el link del mplab y el mcc 18
Usenlo y pss ojala todos nos nutramos de estos aportes.
un saludo
http://cid-538e3dabc62b77b3.skydrive.live.com/browse.aspx/Mplab

#44  Hola, un saludo y espero me puedan r....
erko

Registrado: 10 Jul 2008
Mensajes: 2
citar
Bueno, ya lei todo este hilo y me he encontrado con muchas cosas que desconocia, como por ejemplo la forma en la que ustedes crean el codigo... gracias y a leer se ha dicho.

Pasando a otras cosas y espero me puedan ayudar, hace como 2 años usaba MPLAB y PICCLITE para crear y simular codigo, para el 16F877solo que lo habia dejado un buen rato, y ahora que he dejado de usar el s.o. de las ventanas y me he instalado con el pingüino me ha vuelto ha entrar el gusanito por el tema de los microcontroladores, me he encontrado con que hay ides como piklab (ya lo he descargado, al igua que sdcc) pero no he podido configurarlo correctamente, y este es el problema, que no puedo compilar el codigo que creo, aqui les pongo un ejemplo de lo que es mi ultimo proyecto y que deje inconcluso...:

Código: Seleccionar todo


#include<pic.h>

/*Definición de entradas y salidas*/

#define      v1   RB0

#define      v2   RB1

#define      v3   RB2

#define      v4   RB3

#define          paro   RD0

#define         arranque   RD1

#define      m1   RD2

#define      m2   RD3

#define      m3   RC4

#define      m4   RC5



/*Inicio de Programa.*/



void ciclo (void);

void main (void)

{

/*Declaración de los puertos como entradas o salidas.*/

TRISD=255;TRISC=255;TRISB=0;

/*Declaración de variables.*/

v1=0;v2=0;v3=0;v4=0;

/*Inicio de secuencia.*/

while(1)

   {

   if(arranque==0)

      {

      while(paro==1)

         {

         v1=1;

         v2=0;

         v3=0;

         v4=1;ciclo1();

         v1=1;

         v2=0;

         v3=0;

         v4=0;ciclo2();

    v1=1;

         v2=0;

         v3=1;

         v4=0;ciclo3();

    v1=0;

         v2=1;

         v3=1;

         v4=0;ciclo1();

    v1=0;

         v2=0;

         v3=1;

         v4=0;ciclo2();

    v1=1;

         v2=0;

         v3=1;

         v4=0;ciclo3();

         }

      }

   if (arramque==1)

      {

      while (paro==0)

         {

    v1=1;

    v2=0;

    v3=1;

    v4=0;

     }

      while (paro==1)

    {

    while (m1==0)

      }

   }

}

void ciclo1 (void)

{

int cont=0,cont2=0;

OPTION=8;TMR0;T0IF=0;

for (cont=0;cont<120;cont++)

   {

   for (cont2=0;cont2<255;cont2++)

      {

      if (paro==0)

         {

         cont=1250;

         cont2=64;

         }

      else

         {

         while (T0IF==0);T0IF=0;

         }

      }

   }

}

void ciclo2 (void)

{

int cont=0,cont2=0;

OPTION=8;TMR0;T0IF=0;

for (cont=0;cont<48;cont++)

   {

   for (cont2=0;cont2<255;cont2++)

      {

      if (paro==0)

         {

         cont=1250;

         cont2=64;

         }

      else

         {

         while (T0IF==0);T0IF=0;

         }

      }

   }

}

void ciclo3 (void)

{

int cont=0,cont2=0;

OPTION=8;TMR0;T0IF=0;

for (cont=0;cont<1;cont++)

   {

   for (cont2=0;cont2<255;cont2++)

      {

      if (paro==0)

         {

         cont=1250;

         cont2=64;

         }

      else

         {

         while (T0IF==0);T0IF=0;

         }

      }

   }

}




falta simplicficar procesos, pero debe de funcionar correctamente... bueno, si pongo ese codigo en piklab y trato de compilar con sdcc simplemente se cierra piklab, pero si pongo el siguiente codigo (un preliminar del codigo anterior):

Código: Seleccionar todo

#include<pic.h>

#define      v1   RB0

#define      v2   RB1

#define      v3   RB2

#define      v4   RB3

#define          paro   RD0

#define         arranque   RD1

void ciclo (void);

void main (void)

{

TRISD=255;TRISB=0;

v1=0;v2=0;v3=0;v4=0;

while(1)

   {

   if(arranque==0)

      {

      while(paro==1)

         {

         v1=1;

         v2=0;

         v3=0;

         v4=1;ciclo();

         v1=1;

         v2=0;

         v3=0;

         v4=0;ciclo();

         }

      }

   }

}

void ciclo (void)

{

int cont=0,cont2=0;

OPTION=8;TMR0;T0IF=0;

for (cont=0;cont<1;cont++)

   {

   for (cont2=0;cont2<255;cont2++)

      {

      if (paro==0)

         {

         cont=1250;

         cont2=64;

         }

      else

         {

         while (T0IF==0);T0IF=0;

         }

      }

   }

}




aparecen los siguientes errores:

Cita:
sdcc -mpic14 -p16f877 -V --debug -I/home/erko/Piklab/ -c Seca.c
+ "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/erko/Piklab/" -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=270 -DSDCC_pic14 -D__pic14 -DSDCC_PROCESSOR="16f877" -I"/usr/bin/../share/sdcc/include/pic14" -I"/usr/share/sdcc/include/pic14" -I"/usr/bin/../share/sdcc/include" -I"/usr/share/sdcc/include" -I"/usr/bin/../share/sdcc/include/pic" -I"/usr/share/sdcc/include/pic" "Seca.c"
Seca.c:1: 16: error: pic.h: No such file or directory

Seca.c:21: error 20: Undefined identifier 'TRISD'
Seca.c:21: error 20: Undefined identifier 'TRISB'
Seca.c:23: error 20: Undefined identifier 'RB0'
Seca.c:23: error 20: Undefined identifier 'RB1'
Seca.c:23: error 20: Undefined identifier 'RB2'
Seca.c:23: error 20: Undefined identifier 'RB3'
Seca.c:29: error 20: Undefined identifier 'RD1'
Seca.c:33: error 20: Undefined identifier 'RD0'
Seca.c:37: error 20: Undefined identifier 'RB0'
Seca.c:39: error 20: Undefined identifier 'RB1'
Seca.c:41: error 20: Undefined identifier 'RB2'
Seca.c:43: error 20: Undefined identifier 'RB3'
Seca.c:45: error 20: Undefined identifier 'RB0'
Seca.c:47: error 20: Undefined identifier 'RB1'
Seca.c:49: error 20: Undefined identifier 'RB2'
Seca.c:51: error 20: Undefined identifier 'RB3'
Seca.c:67: error 20: Undefined identifier 'OPTION'
Seca.c:67: error 20: Undefined identifier 'TMR0'
Seca.c:67: error 20: Undefined identifier 'T0IF'
Seca.c:77: error 20: Undefined identifier 'RD0'
Seca.c:91: error 20: Undefined identifier 'T0IF'
Seca.c
Seca.c:91: error 20: Undefined identifier 'T0IF'

*** Salida con estado: 1 ***


A que se debera esto...? por mas que busco y busco no he encontrado mucha info sobre como configurar piklab, se debera a que la forma en la que creo el codigo es diferente a como ustedes lo hacen...?

bueno, me despido y espero me puedan ayudar o guiarme y postear algunos links donde se explique como configurar piklab, que yo intento mientras con algun codigo de ejemplo que aqui an posteado y de antemano gracias por su tiempo...

#45  
fragmir

Registrado: 18 Abr 2008
Mensajes: 20
Ubicación: Mexico
citar
hola erko , nunca he programado pics en programas que no sean mplab o proview 32 aunque este ultimo sea de atmel jaja pero por lo que yo he aprendido, ese error puede tener dos posibilidades:
1. Normalmente la librería de los pics se identifican con la matricula ejemplo: # include "pic16f877.h" en vez de # include "pic.h" y de ser este error, de ahi vienen los otros errores de deconocimiento de variables como RB0,RB1 etc. caxay?
2. Si tu librería es correcta, entonces debes checar que las rutas de los directorios esten configurados correctamente es decir, si la ruta de tu libreria h esta en c:\compilador\h y en las opciones tienes definida la ruta c:\users\desktop\compilador\h, nunca encontrara ni el pic.h ni todas las variables.
Espero sirva esta respuesta.
un saludo

#46  
erko

Registrado: 10 Jul 2008
Mensajes: 2
citar
primero que nada gracias por tu respuesta....

acabo de checar lo que me dices, si pongo "#include<pic16f877.h" al ultimo programa solo me aparece el siguiente error:

sdcc -mpic14 -p16f877 -V --debug -I/home/erko/Piklab/ -c Seca.c
Seca.c:67: error 20: Undefined identifier 'OPTION'
+ "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/erko/Piklab/" -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=270 -DSDCC_pic14 -D__pic14 -DSDCC_PROCESSOR="16f877" -I"/usr/bin/../share/sdcc/include/pic14" -I"/usr/share/sdcc/include/pic14" -I"/usr/bin/../share/sdcc/include" -I"/usr/share/sdcc/include" -I"/usr/bin/../share/sdcc/include/pic" -I"/usr/share/sdcc/include/pic" "Seca.c"
*** Salida con estado: 1 ***

haciendo referencia a OPTION de void ciclo (void), con lo que concluyo que las rutas de los directorios estas bien dirigidas (o eso creo yo).... alguien mas sabra por que....? mientras tanto sigo intentando con otros codigos... y nuevamente gracias fragmir....

#47  
fragmir

Registrado: 18 Abr 2008
Mensajes: 20
Ubicación: Mexico
citar
Para resolver eso debes revisar la librería del pic16f877.h para buscar la variable option, si tu "identifier" es correcto, en la librería deberá aparecer declarado.
De no ser así deberás buscar el identificador correcto quiza es opt u options o algo así que se yo jeje pero de no ser así quiza estas omitiendo alguna librería que trae ese identificador
salu2

#48  Introducción a MPLAB
sangreaztk

Registrado: 02 Feb 2008
Mensajes: 15
Ubicación: México
citar
Saludos a todos, esta vez he subido un documento acerca de la primera practica que tuve en la materia de programación de sistemas en tiempo real donde se explica muy bien el uso de MPLAB, el documento fue escrito por el profesor David Arturo Gutiérrez Begovich al que le agradezco por todo lo que nos enseño a mis compañeros y a mi acerca de los PICs.

Hasta la próxima camaradas!!!



Este mensaje contiene archivos adjuntos, para verlos debes estar registrado.

#49  Nuevos aportes para enzamblador
snakewather

Registrado: 31 Ene 2007
Mensajes: 28
Ubicación: mexico
citar
PASOS EN MPLAB:

Bueno colegas aqui esta mas informacion para seguir con este tema, adjunto esta imagen que describe los
pasos a seguir en el MPLAB para crear un nuevo Programa espero ya hayan hecho su grabador
y tengan instalado el MPLab.

ademas de como Escribir Nuevo program MPLAB:

En esta imagen describo como se abre el editor de MPlab diran algunos que esto ya es mas que
ridiculo describir paso a paso pero creo que es conveniente ya que estoy seguro de hay nuevos
en el tema y se preguntaran como hacerle.



Este mensaje contiene archivos adjuntos, para verlos debes estar registrado.

#50  Pasos
snakewather

Registrado: 31 Ene 2007
Mensajes: 28
Ubicación: mexico
citar
esta es la otra imagen



Este mensaje contiene archivos adjuntos, para verlos debes estar registrado.

 Responder





 Temas de interés 
No hay mensajes nuevos Destacado: Programas de simulación y diseño de circuitos electrónicos
No hay mensajes nuevos Cargador para auto para IPOD ESPECIFICO
No hay mensajes nuevos chip PWM especifico
El tema está cerrado y no puedes editar mensajes o responder Programas de diseño de circuitos impresos
No hay mensajes nuevos Problema generado por programas Spyware y Adware

Foros de Electronica
|| Cuestiones Elementales de Electrónica || Fuentes de alimentacion || Circuitos de radio || Diseño de circuitos en general ||
|| Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión ||
|| Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos ||