Advertisement
RuiViana

PIC18F4550nRF24L01

Dec 28th, 2015
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. #include <18F4550.h>
  2. #fuses XTPLL,PLL1,CPUDIV1,PUT,NOBROWNOUT,NOVREGEN,NOWDT,NOPBADEN,MCLR,NOLVP,NODEBUG,NOPROTECT,NOCPD,USBDIV
  3. #use delay(clock=48000000)
  4.  
  5. #include "lib_rf2gh4_10_4550.h" // Librería modificada del nRF24L01 para el manejo SPI con el PIC 18F4550.
  6.  
  7. #byte porta=0xF80 // Dirección de los puertos A, B, C, D y E.
  8. #byte portb=0xF81
  9. #byte portc=0xF82
  10. #byte portd=0xF83
  11. #byte porte=0xF84
  12.  
  13. #int_ext2
  14. void int_RB2() // Esta rutina está para un futuro si haces comunicaciones bidireccionales.
  15. { // No tiene efecto en el programa principal, ya que sólo emite.
  16. int8 ret1; // Se encargaría de la recepción de datos.
  17.  
  18. ret1 = RF_RECEIVE();
  19. if ( (ret1 == 0) || (ret1 == 1) )
  20. {
  21. do
  22. {
  23. data=RF_DATA[0]; // Data contendrá el valor que le llege del emisor, a través de RF_DATA[0].
  24. portd=data; // Lo que haya en data lo refleja en los LEDs.
  25. ret1 = RF_RECEIVE();
  26. } while ( (ret1 == 0) || (ret1 == 1) );
  27.  
  28. }
  29. }
  30.  
  31.  
  32. void main() //Programa principal.
  33. {
  34. set_tris_d(0b00000000); // RD on LEDs.
  35. portd=0XFF; // Acende todos LEDs portD
  36. Delay_ms(2000); // delay 2 secs
  37.  
  38. portd=0; // Apaga todos LEDs portD
  39.  
  40.  
  41. RF_INT_EN(); // Habilitar interrupción RB2/INT.
  42. RF_CONFIG_SPI(); // Configurar módulos SPI del PIC.
  43. RF_CONFIG(0x40,0x08); // Configurar módulo RF (canal y dirección).
  44. RF_ON(); // Activar el módulo RF.
  45.  
  46. while(true); // Bucle infinito.
  47.  
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement