TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: antrax en 11 de Noviembre de 2007, 19:52:22

Título: funciones SPI
Publicado por: antrax en 11 de Noviembre de 2007, 19:52:22
a ver a ver como explico esta ... la cuestión es que todos los compiladores de C para pic y dspic tienen las funciones de lectura y escritura de SPI la cuestión es que en la mayoría de los casos esta funciones no son muy eficientes cuando se usan interrupciones...

alguien tiene hechas unas funciones de lectura y escritura de SPI echas... o donde pueda conseguirlas
Título: Re: funciones SPI
Publicado por: stk500 en 12 de Noviembre de 2007, 07:01:10
Hola a mi mando una el amigo Alogic.con pasate por aqui
http://www.todopic.com.ar/foros/index.php?topic=18862.20
Título: Re: funciones SPI
Publicado por: Nocturno en 12 de Noviembre de 2007, 07:04:31
Yo hice una para manejar un VFD (http://www.micropic.es/index.php?option=com_content&task=view&id=58&Itemid=1); sólo tengo la de escritura, pero si te sirve es esta:

Código: C++
  1. void VFD_spi_write (int8 dato) {
  2.    disable_interrupts(INT_TIMER0);
  3.    for (jv=0;jv<8;jv++) {
  4.       DATA=bit_test(dato,7-jv);
  5.       SCLK=0;
  6.       delay_us(3);
  7.       SCLK=1;
  8.    }
  9.       enable_interrupts(INT_TIMER0);
  10.    delay_us(80);
  11. }
Título: Re: funciones SPI
Publicado por: antrax en 12 de Noviembre de 2007, 12:44:56
esta es una funcion que consegui pero no me funciona

Código: [Seleccionar]

void SPI_TR_Done()
{
while(!PIR1.F3);
PIR1.F3 = 0x00;
}//SPI_TR_Done()

void spi_write(char data)
{
SSPBUF = data;
SPI_TR_Done();
}//spi_write(char data)

char SPI_Read(){
char tmp_read = 0x00;
while(!BF);
tmp_read = SSPBUF; // Recieved data
return tmp_read;
}//SPI_Read */

gracias nocturno pero no me camina esa funcion y intente reinterpretarla y rescribirla en el compilador MikroC
la funcion bit_test no se puede interpretar de otra manera