TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: BEXTIXTOX en 19 de Febrero de 2016, 03:52:02

Título: spi para pic12f??
Publicado por: BEXTIXTOX en 19 de Febrero de 2016, 03:52:02
hola alguien tiene algun ejemplo de spi con pic 12f yo se que se usan todos los pines pero no importa.
creen que se pueda implementar yo intente asi pero me da error

#include <12F683.h>
#device ADC=10
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR
#use delay(clock=4000000)
#define GP0 PIN_A5
#define GP1 PIN_A4
#define GP2 PIN_A3
#define GP3 PIN_A2
#define GP4 PIN_A1
#define GP5 PIN_A0
#use spi(DI=PIN_A2, DO=PIN_A1, CLK=PIN_A3)

void init()
{
set_tris_a( 0b11100001 ); // set GP0 output, all other inputs
setup_comparator( NC_NC_NC_NC ); // disable comparators
setup_adc_ports( NO_ANALOGS ); // disable analog inputs
setup_adc( ADC_OFF ); // disable A2D
}
main()
{

while ( TRUE ) // blink LED
{
  spi_write(0x70);
}
}
Título: Re:spi para pic12f??
Publicado por: BrunoF en 19 de Febrero de 2016, 10:59:14
Hola, y qué error te da?

No debería ser:

Código: ASM
  1. #include <12F683.h>
  2. #device ADC=10
  3. #fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR
  4. #use delay(clock=4000000)
  5. #define GP0 PIN_A5
  6. #define GP1 PIN_A4
  7. #define GP2 PIN_A3
  8. #define GP3 PIN_A2
  9. #define GP4 PIN_A1
  10. #define GP5 PIN_A0
  11. #use spi(DI=PIN_A2, DO=PIN_A1, CLK=PIN_A3)
  12.  
  13. void init()
  14. {
  15.    set_tris_a( 0b11100001 ); // set GP0 output, all other inputs
  16.    setup_comparator( NC_NC_NC_NC ); // disable comparators
  17.    setup_adc_ports( NO_ANALOGS ); // disable analog inputs
  18.    setup_adc( ADC_OFF ); // disable A2D
  19. }
  20. void main()
  21. {
  22.    init();
  23.    while ( TRUE ) // blink LED
  24.    {
  25.       spi_write(0x70);
  26.    }
  27. }
Título: Re:spi para pic12f??
Publicado por: BEXTIXTOX en 19 de Febrero de 2016, 19:01:18
aqui esta el error
Título: Re:spi para pic12f??
Publicado por: Chenao en 19 de Febrero de 2016, 19:42:15

Citar
aqui esta el error

Amigo ese microcontrolador no tiene implementado por hardware un modulo de comunicaciones síncrona, por lo tanto no es posible correr la función spi_write() porque no viene implementada para este dispositivo (puede consultar la cabecera .h), como solución es cambiar de máquina o realizar una implementación por software del protocolo.