elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Introduccion a la programacion de PICS en lenguaje C (CCS)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 Ir Abajo Respuesta Imprimir
Autor Tema: Introduccion a la programacion de PICS en lenguaje C (CCS)  (Leído 605,271 veces)
ncoliv

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #100 en: 18 Septiembre 2008, 06:07 am »

Encontre este foro y tambien algo que estoy buscando. El programa que me muestra por el lcd el tiempo del RTC Hora y fecha. me podrias pasar la circuiteria del pic F877A y el rtc 1307? Por favor me sería de mucha utiliadad muchas gracias


En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #101 en: 7 Octubre 2008, 07:59 am »

Hola:

Podrían poner el compilador de C, CCS, ahora su versión es la 4.080, al menos que casi llegue a ella.

Y si pueden también el Proteus más nuevo.

Un cordial saludos.


En línea

alondra_celeste

Desconectado Desconectado

Mensajes: 1


Ver Perfil
AYUDA- programacion de PICS en lenguaje C (CCS)
« Respuesta #102 en: 19 Octubre 2008, 05:26 am »

Hola a todos, ando buscando informacion sobre comunicacion por RF, tengo los transmisores LAIPAC TLP434A & RLP434A, lo que no se como es que debo enviar informacion de un PIC- TLP434A - RLP434A - PIC, es decir, informacion de un PIC a otro PIC mediante este transmisor y receptor inalambricos, con el Lenguaje C (CCS), me urge mucho  :-[ , ya he buscado sin exito, por favor, alguien puede ayudarme????

Gracias.

Liz
En línea

MARCO_RECARGADO

Desconectado Desconectado

Mensajes: 75


Mas recargado que nunca


Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #103 en: 19 Octubre 2008, 06:03 am »

Hola a todos, ando buscando informacion sobre comunicacion por RF, tengo los transmisores LAIPAC TLP434A & RLP434A, lo que no se como es que debo enviar informacion de un PIC- TLP434A - RLP434A - PIC, es decir, informacion de un PIC a otro PIC mediante este transmisor y receptor inalambricos, con el Lenguaje C (CCS), me urge mucho  :-[ , ya he buscado sin exito, por favor, alguien puede ayudarme????

Gracias.

Liz
Hola que tal disculpa pero este post se hizo especialemente para poner programas de PICS en C o resolver dudas sobre programas, por lo que pido a todos los usuarios en gral que posteen sus dudas unica y exclusivamente acerca de programacion de pics en c   no deseo que este comentario se tome como ofensivo solo es para tener un orden en nuestros posts y para que aquel que quiera aprender a programar pics en c no se vea afectado con temas de otra indole.

bueno despues de sermon te puedo decir, los transmisores que tu tienes son transmisores que envian todo lo que tu pongas en sus pines de salida/entrada respectivamente es decir si tu pones un "1" logico eso mismo mandara, sin embargo solos te pueden acarrear muchos problemas porque no tienes un protocolo de counicacion para detectar o filtrar posibles errores o lo que es lo mismo no tienes la certeza de que estas recibiendo, para eso yo te recomendaria usar un codificador y decodificador respectivamente. sin embargo los puedes conectar directamente al PIC. aunque yo no lo recomiendo mucho por que estan sujetos a muchos disturbios, estos son unos ejempolos de como conectar tus dispositivos de rf.








yo te recomendaria los decoficadores  HT12E y HT12D aqui esta el lnik de como puedes utilizarlos, estos chips ya contienen su propio protocolo de comunicaciones y a mi en lo personal me han sido de mucha utilidad, espero haber sido de ayuda , SALUDOS

www.datasheetcatalog.org/datasheets/37/467327_DS.pdf
En línea

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

Desconectado Desconectado

Mensajes: 75


Mas recargado que nunca


Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #104 en: 19 Octubre 2008, 06:16 am »

El software de proteus y picc estan publicados al inicio de este post y son las versiones mas recientes  que yo tengo en cuanto tenga mas actuales los publico, SALUDOS
En línea

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


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #105 en: 20 Octubre 2008, 14:10 pm »

El software de proteus y picc estan publicados al inicio de este post y son las versiones mas recientes  que yo tengo en cuanto tenga mas actuales los publico, SALUDOS

Esperando respuesta mi muy distinguido amigo.

Proteus está la v7.4
En línea

Juan_elec

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #106 en: 8 Noviembre 2008, 02:29 am »

olas a todos que tal me parece muy interesante este foro ya que puedes compartir muxas ideas y cosas mas weno io queria contar y preguntar a la vez es que io hice una tarea en mi univ de un controlador de velocidad de un motor dc la velocidad es vista en un lcd y mi velocidad de referencia la escojo con un potenciometro ,mediante el pic16f876A corrijo el error  ante  una perturbacion en el eje mediante un pid programado en el pic weno el trabjo si me flipa pero mi problem es que mi valor de refencia que me aparece en el lcd de mi trabajo no es igual ami valor de salida de mi lcd mm y no se si seran los parametros de mi motor que esten mal o sera mis valores kp ki kd habe si alguien me dice alguito de como corregir esto pls mayor inf les puedo pasar mi simulacion en proteus si entienden mi idea gracias ahi les va el programa de formacion del pid.

#include <16F876A.h>
#device adc=10
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz)
#FUSES PUT                      //Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NODEBUG             
     //No Debug mode for ICD
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection

#use delay(clock=20000000)
#include <lcd.c>
#define  factor   3000/1023
#define  f2       0.23
#use fast_io(a)
#use fast_io(c)
#use fast_io(b)

float rpm,vel_m;
int   cont_t0;
int16 vel,vref,duty,aux;
signed long duty_c,uk_int;
float uk,uk_1,ek,ek_1,ek_2,f_vref;
int Kp,Ki,Kd;

void set_pwm1_dc(unsigned long duty_pwm);

#int_TIMER0
void TIMER0_isr()
{
   set_timer0(61);      // para contar 10 ms
   cont_t0++;
   if(cont_t0==10)
   {
      cont_t0=0;
      vel=get_timer1();   // contamos cuanros pulsos pasaron
      vel=vel*6;        // son 100 pulsos por revolucion
                        // asi obtenemos en revoluciones cada 100 milisegundos
                        // vel = #p/deci * 1rev/100p * 10 deci/1 seg * 60 seg/min
                        // vel esta en rpm
      lcd_gotoxy(9,2);
      printf(lcd_putc,"Vm=%Lu",vel);
      set_timer1(0);
   }
}

void main()
{
   set_tris_a(0xff);
   
   setup_adc(ADC_CLOCK_DIV_8);
   
   setup_adc_ports(AN0);
   set_adc_channel(0);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
   setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1);
   setup_timer_2(T2_DIV_BY_4,0XFF,4);
   setup_ccp1(CCP_PWM);
   set_pwm1_duty(0);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   set_timer0(61);
   set_timer1(0);
   clear_interrupt(INT_TIMER0);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(GLOBAL);
   
   set_tris_c(0b11111011);
   set_tris_b(0);
   output_b(0);
   lcd_init();
   set_pwm1_dc(700);
   lcd_putc("   CONTROL PID\n");
   delay_ms(1000);
   output_b(0);
   
   uk=0;
   uk_1=0;
   ek=0;
   ek_1=0;
   ek_2=0;
   
   Kp=10;
   Ki=10;
   Kd=5;
   for(;;)
   {
      aux=read_adc();
      if(aux!=vref)
      {
         vref=aux;
         f_vref=vref;
         rpm=vref*factor;
         lcd_gotoxy(1,2);
         printf(lcd_putc,"Vr=%4.0f",rpm);     
      }
      vel_m=vel;
      ek=rpm-vel_m;
     
      uk=Kd*ek_2+(Kp+2*Kd)*ek_1+(Kp+Ki+Kd)*ek-uk_1;   // controlador pid
      ek_1=ek;
      ek_2=ek_1;
      uk_1=uk;
      uk_int=uk;
      duty_c=uk_int*f2;
      if(duty_c>1023)
         duty_c=1023;
      else if(duty_c<=0)
         duty_c=0;
      duty=duty_c;
      set_pwm1_dc(duty);       
   }
   
}

void set_pwm1_dc(unsigned long duty_pwm)
{
 #byte   CCP1CON=0x17
 #byte   CCPR1L=0x15
 
   bit_clear(CCP1CON,4);
   bit_clear(CCP1CON,5);
   if(bit_test(duty_pwm,0))
         bit_set(CCP1CON,4);
   if(bit_test(duty_pwm,1))
         bit_set(CCP1CON,5);
   duty_pwm>>=2;                 //rota dos veces
   duty_pwm&=0x00FF;             // dejamos solo un byte
   CCPR1L=duty_pwm;     
}

graxias ojala me puedan ayuda xD
En línea

MARCO_RECARGADO

Desconectado Desconectado

Mensajes: 75


Mas recargado que nunca


Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #107 en: 19 Noviembre 2008, 05:20 am »

Juan_elec

espero que no sea muy tarde, creo que un diagrama de lo que tienes serviria un poco puesto que dices que tienes un pid pero como es que retroalimentas al pic para hacer el ajuste de velocidad? con un tacometro o con que?


segun entiendo en tu programa utilizas el adc para saber la velocidad, yo creo que te ha de variar mucho, porque el voltaje de salida no debe ser constante, aunque paraciera, lo que yo te recomendaria es que hicieras una serie de promedios, es decir que tomes unas 10 muestras del adc y las promedies y asi sucesivamente para que salga lo mas exacto posible, obviamente que entre mas muestras tengas mas cerca estaras del valor, el mismo metodo aconsejo para cuando estas muestreando el valor del pwm que mandas, en gral yo pienso que por eso no coinciden tus valores,
pero en definitiva un diagrama electrico estaria mucho mejor
En línea

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

Desconectado Desconectado

Mensajes: 75


Mas recargado que nunca


Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #108 en: 19 Noviembre 2008, 05:48 am »

ha llegado el momento de agregarle una practica mas a nuestro pequeño tutorial
esta practica lo que hace es que pasa los datos recibidos por puerto serie a la lcd
utilizo la terminal virtual para simular la comunicacion con el pic

/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////comunicacion RS232 con pic///////////////////////////////
///////////////by marco_recargado para foro.elhacker.net///////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
#include <16F877A.h>
#fuses HS, NOWDT, NOPROTECT
#use delay(clock=8000000)

#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7) /// libreria para el manejo del
                                                                        /// puerto serie  se establece
                                                                        /// velocidad de 9600 baudios
#include <lcd.c>                          /// libreria para el manejo de la lcd
char dato_recibido[16];                /// aqui va a ir los datos recibidos por rs232


#byte porte=0x09
 
#int_rda                                     //// interrupcion por escritura en buffer del puerto
void rda_isr()
 {
  gets(dato_recibido);                  //// esta instruccion almacena en la variable los
                                                 //// datos que se esten enviando hasta que llega
                                                 //// la tecla enter
  }
 
 

 

void main()

{
   enable_interrupts(int_rda);                    //// se habilita la interrupcion por
                                                             ////  escritura del puerto serial
   enable_interrupts(global);
 
  set_tris_d(0b00000000);
 
   lcd_init();
   lcd_gotoxy(1,1);
   lcd_putc("    com RS232   ");
   
   while(true)
   {
   lcd_gotoxy(1,2);
   printf(lcd_putc,"%s",dato_recibido);         /// se manda a lcd lo que se  recibio
   
   }
}
 
 
nuestra gloriosa imagen
En línea

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


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #109 en: 19 Noviembre 2008, 13:05 pm »

Muy bueno. También hice uno con PIC y RS232 pero con asm. En estos momentos estoy haciendo un manual tutorial que ya llevo más de 40 páginas en PDF y con muchas fotos.



https://foro.elhacker.net/electronica/rs232_con_pic16f84a_y_visual_c_net-t228116.0.html
En línea

Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
introduccion ala programacion
Electrónica
cldo 0 3,022 Último mensaje 23 Marzo 2006, 00:59 am
por cldo
Programacion de PICS
Electrónica
Zeroql 7 12,539 Último mensaje 16 Octubre 2011, 00:24 am
por CCStuamigo
Introducción al Lenguaje PERL
Scripting
Dr.SysCrack 0 2,846 Último mensaje 19 Noviembre 2007, 03:04 am
por Dr.SysCrack
Introducción a la programación
Programación General
Meta 1 2,795 Último mensaje 23 Agosto 2010, 13:48 pm
por forever77
Introducción a la programación en Ruby
Scripting
peib0l 1 2,499 Último mensaje 8 Agosto 2010, 19:19 pm
por Novlucker
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines