Autor Tema: funciones SPI  (Leído 1901 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado antrax

  • PIC10
  • *
  • Mensajes: 30
funciones SPI
« 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

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: funciones SPI
« Respuesta #1 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

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: funciones SPI
« Respuesta #2 en: 12 de Noviembre de 2007, 07:04:31 »
Yo hice una para manejar un VFD; 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. }

Desconectado antrax

  • PIC10
  • *
  • Mensajes: 30
Re: funciones SPI
« Respuesta #3 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 


 

anything