• Viernes 8 de Noviembre de 2024, 21:41

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - yaneth84

Páginas: [1]
1
Programación en C / Re: Comunicacion En C Pic16f877
« en: Martes 13 de Mayo de 2008, 23:14 »
:)

Con respecto del uso algun temporizador que se encargara de enviar los datos a una razon de tiempo determinada.
1.- Yo defino eso con los bits <7,ADCS1>,<6,ADCS0> del registro ADCON0 Y
           <6,ADCS2> DEL registro ADCON1
2.- Mi duda es entoces;
Te refieres a reemplazar este generador de reloj. O no?
3.- Si es asi, en que casos o aplicaciones se debe de hacer                                
4.-Y como se debe de implementar, o en que parte talvez del data sheet del 16f877 encuentro mas informacion

2
Programación en C / Asm Y C
« en: Martes 13 de Mayo de 2008, 20:09 »
Saludos

1.- Tengo problemas para agragar codigo asm a mi program en c. Uso el compilador PICC de hit-tech

2.- Me salen errores pero no hallo el origen.

3.- Adjunto el programa

3
Programación en C / Re: Comunicacion En C Pic16f877
« en: Martes 13 de Mayo de 2008, 20:05 »
Hola
Gracias por responder antes de todo

Dudas:
1.-La comunicacion la hago constantemente  puese el envio en un ciclo While; but
A que te refieres con:... comunicación preferentemente con un timer.

2.-En que casos me convendria utilizar la interrupcion de la trasmision.

3.-Solucione el problema de envio  limpiando el TXREG, DE LO CONTRARIO NO ME FUNCIONA, pero no entiendo porque tiene que ser asi, ya que no le veo la necesidad de hacerlo.

void interrupt TX(void)
{
if (TXIF)
   {
     TXIF=0; //YA SE ENVIO EL DATO? -->tsr estará VACIO, Bit TRMT estará en 1;
     TXREG=0;
    }
}

4
Programación en C / Comunicacion En C Pic16f877
« en: Miércoles 7 de Mayo de 2008, 17:06 »
:D  hola a todos
Alguien puede revisar este codigo, que puede estar mal

YA lo hice en asm si funciona, pero en c con interrupciones...

#include<pic.h>

char BUFFER;
void interrupt TX(void);

void main()
{
   //--------CONFIG PORTS-------------

   TRISC=0b10000000;
   TRISD=0;

   PORTC=0;
   PORTD=0;
   //--------CONFIG RS232-------------

TXSTA=0B00100110;//TXSTA bit<5;TXEN>=1; TRASMISION HABILITADA
               //TXSTA bit<4;SYNC>=0; MODO ASYNCRONO
                     //TXSTA bit<2;BRGH>=1; HIGH SPEED
              //TXSTA bit<1;TRMT>=1; TSR EMPTY  

   SPBRG=25;   //BAUD RATE 9600bps
   SPEN=1;   //RCSTA bit<7;SPEN>=1;   PORT SERIAL HABILITADO
      
//-------config interrupciones-----
 INTCON=0B11000000; //INTCON bit<7;GIE>=1;  HABILITA iNTERRUP GENERAL
                                  //INTCON bit<6;PEIE>=1; HABILITA INTERRUPCIONES                 //PERIFERICOS
   
 TXIE=1;  //PIE1   bit<4;TXIE>=1; HABILITA LA INTERRUPCION USART TRANSMIT         
 TXIF=0;   //PIR1    bit<4;TXIF>=1; FLAG, BUFFER LLENO;      
   //----------PROGRAM----------------
   
   BUFFER='B';
   PORTD=BUFFER;
   TXREG=BUFFER;
}
   
void interrupt TX(void)
{
 TXIF=0;   //YA SE ENVIO EL DATO? -->tsr estará VACIO, Bit TRMT estará en 1;
}

Páginas: [1]