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

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

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

MARCO_RECARGADO

Mi estimado amigo Meta no me queda mas que quitarme el sombrero ante ti, te ha quedado muy bien el programa, y espero ya con ansias tu manual para devorarlo,  :o   espero que ese espiritu de compartir tus experiencias no decaiga. Se ve que te haz puesto empeño al trabajo pues ya hasta tu pagina web hiciste, felicidades, espero yo poder hacer la mia algun dia.
Saludos
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

Meta

Gracias.

No tengo porqué perder el empeño de hacer manuales salvo que consiga empleo y me quite mi tiempo libre. Ahora como en España estamos en el paro y vamos de mal en peor aprovecharé. Me falta pulir cosas al manual y la verdad me comí un 0 arriba. Sospecho que serán cerca de 450 páginas de lectura rápida al estilo que muestra a continuación.

http://usuarios.lycos.es/electronicapic/manual/icprog.pdf

Saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

RASAAM

Hola marco, en verdad te felicito y me alegra que personas como tú colaboren con el prógimo, espero poder colaborar, ya que anteriormente no lo he hecho ?¿? no sé por qué nunca me había unido a uno de estos espectaculares foros.  :o

bueno.... la idea es que tengo algo de experiencia en assembler y en verdad me defiendo bastante bien. ahora, quiero evoluionar a CCS,, la cuestion es que quiero saber cómo leer un archivo .txt de una memoria SD. lo de la lectura de la SD no es problemal,ya que e leido que hay una libreria SD.c o algo así..

La verdad es que pienso hacer un archivo txt de tal forma que a ciertas horas el pic me ejecute una acción dependiendo de lo que haya configurado en el archivo txt. el archivo lo debería modificar cada vez que quisiera en mi PC a la SD sobre el txt, en el que deberían ir configurados los horarios y su acción correspondientes. el horario con un DS1307 (no hay problema).

Ah! de todas formas pienso comensar con aprender el fomato FAT, ya que creo que es importante para manejar txt, además supongo que el pic debe comprender el formato para así poder interpretar el archivo txt ,,....

Por ahora no escribo más y espero anciosamente tu respuesta, tal vez es un buen proyecto....

MARCO_RECARGADO



Queridos amigos aqui tenemos recien salidito PROTEUS 7.4 SP3
a disfrutarlo.


Cortesia de nuestros amigos del FORO SONSIVRI

Setup:
http://rapidshare.com/files/170201339/Proteus_7.4_Sp3_setup_sonsivri.com.rar

Patch:
Version 6.2
http://rapidshare.com/files/170740810/Proteus_7.4_sp3_patch_6.2_sonsivri.com.rar

Procedimiento:

1) Desinstalar cualquier version de proteus.
2) Instalar la nueva version (tambien la llave)
3) Aplicar el patch (el patch debe estar en la misma carpeta donde se instalo proteus)

Funcionando yo al menos no he tenido ningun contratiempo con ISIS ya llevo simulando 2 dias y no he encontrado ningun bug. ARES todavia no lo pruebo bien.

tambien lo pueden encontrar en el inicio de este post.

Saludos





"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

MARCO_RECARGADO

#114
Para que no se quede atras tambien tenemos la version mas actual que hasta ahora he podido conseguir.


CCS 4.078

tambien cortesia del foro sonsivri

solo instalen , aplican las licencias y peguen las dll que viene en el zip en el directorio raiz del porgrama.

Segun he leido a algunos les causa problemas y les pone que instalan la version 4.074 la solucion es desinstalar y volver a instalar, a mi en lo particular no me presento ningun problema.


algunos afirman que no necesitaron nuevas licencias ni pegar las dll yo si las instale

para quien quiera saber mas aqui esta la fuente :

como instalar




enjoy
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

pajaro128

hola   me inicio en ccs y tengo un pequeño problema
 
                 ERROR 18....file can not be opened
                 en la linea que tira el error =     #include <16f877a.h>
                 puede ser que no encuentre la libreria del pic ????
                                      saludos

MARCO_RECARGADO


Hola que tal pajaro128, el  problemas puede consistir en como haz hecho tu programa, si en la barra de proyecto que es la que esta hasta abajo aparece algo asi pjt:mi_primer_ejemplo.pjt y adelante tienes algo asi c:/programas pic/ mi_segundo_ejemplo.c entonces resulta que el proyecto que esta ejecutandose no coincide con el programa.c que estas compilando por lo que te tira el error de que no se puede abrir el archivo porque tu programa no coincide con tu proyecto espero haberte ayudado.

Saludos
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

MARCO_RECARGADO

pues bien para los niños que se han portado bien los reyes magos nos han dejado un regalito.
la practica de un contador por interrupcion     :rolleyes:    bueno un regalo es un regalo 
la cuenta es ascendiente aprox cada segundo (.98304 seg)

////////////////////////////////////////////////////////////////////////////////
///////////    practica 10 : contador por interrupcion        //////////////////
//////////     By Marco_recargado para foro.elhacker.net      //////////////////
////////////////////////////////////////////////////////////////////////////////

#include <16F877.h>                ///   libreria para el manejo del pic16f877a
#use delay(clock=8000000)          ///   declara  la frecuencia del cristal
#fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT,NODEBUG  ///configura los fusibles

int contador=0;                         /// Variable que llevara la cuenta total
int delay=30;                                       

#byte portb = 6

#int_TIMER0

void timer0()
{



delay--;
if(delay==0){contador++; delay=30;}
set_timer0(0);
}

////////////////////////////////////////////////////////////////////////////////
//////////////////////inicio del programa principal/////////////////////////////
////////////////////////////////////////////////////////////////////////////////


void main(void)
{

set_tris_b(0x00);

///la formula para saber cada cuando se ejecutara nuestra interrupcion con el timer0
/// es T=N*M*(4/FOSC) donde
/// T= tiempo
/// N= preescalador del timer o divisor
/// M= numero de iteracciones
/// asi por ejemplo con un preescalador de 256 un numero de iteraciones de 256 y un cristal de 8mhz
/// nos da un resultado de 32.7 milisegundos por interrupcion

setup_timer_0 ( RTCC_INTERNAL | RTCC_DIV_256 );    /// configura a timer0 con reloj
                                                   /// interno y un divisor de 256                                     
                                                   
enable_interrupts(GLOBAL);                      /// permitir interrupciones
enable_interrupts(INT_timer0);                    ///activar interrupcion en timer0
set_timer0(0);

while(true)
{
portb=contador;
}
}  // fin de programa principal


y nuestra imagen





Saludos y feliz año nuevo



"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

lewisdavid

hola a todos por fortuna e encontrado lo que queria.. un foro para programar en ccs y ojala poder daer mis aportes y que ojala me puedan solucionar muchas dudas que tengo en algunas areas de programacion de este tema

a continuacion adjunto un programa para un enlace de radiofrecuencia este codigo repsonde muy bien ya lo probe y lo presente en un proyecto de la universidad

este es el codigo del emisor

#include<16f877a.h>
#fuses XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=2400, parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8)
#byte PORTD = 0x08
#byte PORTB = 0x06


void main()
{
set_tris_D(0b11111111);

PORTD=0;
PORTB=0;

while(1)
{
if(PORTD==0){printf("%d",0);}
if(PORTD==1){printf("%d",1);}
if(PORTD==2){printf("%d",2);}
if(PORTD==4){printf("%d",3);}
if(PORTD==8){printf("%d",4);}
if(PORTD==64){printf("%d",5);}
if(PORTD==128){printf("%d",6);}

}

}






y este es el codigo del receptor


#include<16f877a.h>
#fuses XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=2400, parity=N, xmit=PIN_C6, rcv=PIN_C7)

#byte PORTD = 0x08
#byte PORTB = 0x06


enable_interrupts(int_rda);
enable_interrupts(global);

char orden;

#int_rda
void serial_isr() {

   orden=getc()-48;

   if(orden==0){PORTD=0b00000000;}
   if(orden==3){PORTD=0b00000101;}     // adelante
   if(orden==2){PORTB=0b00000110;}     // giro

}

void main()
{
set_tris_D(0b00000000);
set_tris_B(0b00000000);

PORTd=0;
PORTB=0;







while(1)


{
   
 

}

}






los modulos de transmision de señal son tlp 434a y rlp434a y son de transmision serial

lewisdavid

por favor necesito que me ayuden en una duda quiero aprender a controlar un serco con ccs osea que se pueda mover cierto grado y como lo hace la verdad solo se que se mueve mediante pwm pero la verdad no se mas de este metodo
por favor en lo que me puedan ayudar, un pequeño codigo para empezar o algooooooooo