Introduccion a la programacion de PICS en lenguaje C (CCS)

Iniciado por MARCO_RECARGADO, 26 Julio 2007, 17:47 PM

0 Miembros y 4 Visitantes están viendo este tema.

edivervizcay

Buenas soy nuevo en el foro y en programacion en c para pics .

Quisiera saber si alguien puede ayudarme con una dificultad que tengo .

tengo un bootloader que me funciona de maravilla en asm , pero debo reservar de la memoria de programa las direcciones desde 0000 hasta 0003 y unas desde 1AAF hasta 1FFF la ultima parte no tengo problema usando:

#org 0x1AAF, 0x1FFF{}

ya lo  pude hacer , pero aun no puedo lograr que el compilador no me use las tres primeras direcciones y tambien requiero colocar dos instrucciones en esa parte , tambien la idea es recolocar o reorganizar la direccion de inicio del main{}.

agradezco cualquier ayuda.


Meta

¿Pueden conseguir este libro aunque sea en inglés?

C# 2008 and .NET Programming for Electronic Engineers



En inglés

Este libro está dirigido a ingenieros y científicos que quieran aprender sobre el entorno .NET y la programación en C# o para los que estén interesados en comunicar hardware con un PC.



El libro cubre el entorno de desarrollo Visual Studio 2008, el sistema .NET y en el lenguaje de programación en C# desde de los tipos de datos y los flujos de programa hasta conceptos más avanzados incluyendo la programación orientada a objetos.



Continúa con la depuración de programas, el manejo de ficheros, bases de datos, comunicación por Internet y el trazado antes de pasar a comunicarse con el hardware empleando los puertos serie, paralelo y USB. Incluye el diseño del hardware para un osciloscopio sencillo utilizando el puerto paralelo y el manejo de entradas/salidas analógicas y digitales utilizando el puerto USB.



Se completa con muchos programas de ejemplo, ejercicios de autoevaluación y referencias a videos de ayuda. Los programas de ejemplo completos están disponibles así como apoyos a profesores universitarios en forma de presentaciones PowerPoint.

Fuente:
http://www.elektor.es/products/books/programming/c-2008-and-.net-programming-for-electronic.264379.951869.lynkx
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

zatman2184

 :rolleyes:
hola mi nombre es francisco, y quiero saber y necesito saber sobre la comunicacion entre pic´s y de las librerias BEAN para control de hardware para un proyecto que estoy haciendo, por favor si tienen algo, haganmelo saber...
muchas gracias y espero su respuesta :laugh:

ikariam

por favor los que necesiten saber sobre comunicaion sobre radiofrecuencia y todo el codigo y su respectiva explicacion escribir al correo

ikariam.lew@hotmail.es

en menos de 5 horas estare dando respuesta a sus dudas gracias

eleazar83

Hola Marco_recargado. mira me interesa el programa de:

////////////ESTE PROGRAMA UTILZA EL CIRCUITO DS1307 PARA MOSTRAR LA ////////////
//////////HORA EN TIEMPO REAL A TRAVEZ DE UNOS DISPLAY´S DE 7 SEGMENTOS/////////
//////////EL PROGRAMA PARA SIMULARLO EN PROTEUS SE LLAMA RELOJ TIEMPO REAL//////


y no veo el archivo .dns para simularlo en el proteus. Lo podrias subir porfa.

Bye.

eleazar83

Insertar Cita
Hola Marco_recargado. mira me interesa el programa de:

////////////ESTE PROGRAMA UTILZA EL CIRCUITO DS1307 PARA MOSTRAR LA ////////////
//////////HORA EN TIEMPO REAL A TRAVEZ DE UNOS DISPLAY´S DE 7 SEGMENTOS/////////
//////////EL PROGRAMA PARA SIMULARLO EN PROTEUS SE LLAMA RELOJ TIEMPO REAL//////


y no veo el archivo .dns para simularlo en el proteus. Lo podrias subir porfa.

Bye.

Aglaia

hola pues me ha gusta mucho lo que has subido
Esperaba que tal vez con la experiencia que tienes en pic c me pudieras ayudar con un problemilla que tengo
nose como comparar los puertos por ej q si el puerto a es mayor q el puerto b ponga en 1 el pin b7 o algo asi
he tratado de guardarlo en variables ej int8 variable=input_a() pero aunque compila al simularlo en proteus no hace nada ya queme el pic con el programa pero aun no pasa nada.
Estoy usando ciclos while y el pic q uso es el 16f877a
MIRA aca esta el programa, te agradeceria mucho que lo pudieras revisar me harias un gran favor... saludos

#include <16f877.h>
#fuses XT, NOWDT, NOPROTECT, PUT, Brownout
#use delay (clock = 4000000)
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)

int8  a1;
int8  b1;
int8  c1;
int8  d1;

// programa
void main (void)

     {
a1= input_a();
  b1= input_b();
  c1= input_c();
  d1= input_d();
    set_tris_a(0x3f);
    set_tris_b(0x3f);
    set_tris_c(0x3f);
    set_tris_d(0x3f);
while(true)
{
   
     while(a1 != b1)
     {
     
while(a1 < b1)
     {
   output_high(PIN_D7);
   output_low(PIN_D6);
   output_high(PIN_C7);
   output_low(PIN_C6);
     }
    while(a1 > b1)
     {
   output_low(PIN_D7);
   output_high(PIN_D6);
   output_low(PIN_C7);
   output_high(PIN_C6);
     }
     }
 
     do
     {
   output_high(PIN_D6);
   output_low(PIN_D7);
   output_low(PIN_C6);
   output_high(PIN_C7);
   //delay_ms(1000);
 
   
     }
      while(0);
   
       while(c1!= d1)
     {
     
while(c1 < d1)
     {
   output_high(PIN_D7);
   output_low(PIN_D6);
   output_high(PIN_C7);
   output_low(PIN_C6);
     }
     while(c1 > d1)
     {
   output_low(PIN_D7);
   output_high(PIN_D6);
   output_low(PIN_C7);
   output_high(PIN_C6);
     }
     }
   
     do
     {
   output_high(PIN_D6);
   output_low(PIN_D7);
   output_low(PIN_C6);
   output_high(PIN_C7);
   //delay_ms(1000);
 
   
   
     }
      while(0);
   }
}


     

trakxe

#157
Hola amigo, no se si aun te sirve la informacion como cuentas en tu programa si quieres compara lo que tienes en el  puerto solo ponlo dentro del while(true).
Asi quedaria:

#include <16f877.h>
#fuses XT, NOWDT, NOPROTECT, PUT, Brownout
#use delay (clock = 4000000)
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)

int8  a1;
int8  b1;
int8  c1;
int8  d1;

// programa
void main (void)

    {

while(true)
{

a1= input_a();
b1= input_b();
c1= input_c();
d1= input_d();
set_tris_a(0x3f);
set_tris_b(0x3f);
set_tris_c(0x3f);
set_tris_d(0x3f);

 
    while(a1 != b1)
    {
   
while(a1 < b1)
    {
  output_high(PIN_D7);
  output_low(PIN_D6);
  output_high(PIN_C7);
  output_low(PIN_C6);
    }
   while(a1 > b1)
    {
  output_low(PIN_D7);
  output_high(PIN_D6);
  output_low(PIN_C7);
  output_high(PIN_C6);
    }
    }
 
    do
    {
  output_high(PIN_D6);
  output_low(PIN_D7);
  output_low(PIN_C6);
  output_high(PIN_C7);
  //delay_ms(1000);
 
 
    }
     while(0);
   
      while(c1!= d1)
    {
   
while(c1 < d1)
    {
  output_high(PIN_D7);
  output_low(PIN_D6);
  output_high(PIN_C7);
  output_low(PIN_C6);
    }
    while(c1 > d1)
    {
  output_low(PIN_D7);
  output_high(PIN_D6);
  output_low(PIN_C7);
  output_high(PIN_C6);
    }
    }
   
    do
    {
  output_high(PIN_D6);
  output_low(PIN_D7);
  output_low(PIN_C6);
  output_high(PIN_C7);
  //delay_ms(1000);
 
   
 
    }
     while(0);
  }
}

Prueba haber como te va... Saludos...

MARS1972

Necesito el compilador y el proteus si alguien me pudiera orientar como bajarlos, ya que cada que selecciono el vinculo en rapidshare me aparece un error.

Se los agradeceria muchisimo gracias. :huh:

MARCO_RECARGADO

Amigos estan actualizados los programas y subidos a tres servidores para que no haya ningun problema se encuentran en la primera pagina de este post, saludos
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez