- Messaggi: 26
- Ringraziamenti ricevuti 0
transceiver RF NRF24L01
- graziano1985
- Autore della discussione
- Giovane Utente
-
Less
Di più
6 Anni 11 Mesi fa #1
da graziano1985
transceiver RF NRF24L01 è stato creato da graziano1985
salve , sto provando a compilare il codice di esempio allegato alla libreria :
utilizzo le librerie LTlib v4.0.4 come richiesto
ma quando compilo mi da questo errore :
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Users/User/Documents/microcontrollori pic/progetti/bozze/spi master/spi master.X'
make -f nbproject/Makefile-default.mk dist/default/production/spi_master.X.production.hex
make[2]: Entering directory 'C:/Users/User/Documents/microcontrollori pic/progetti/bozze/spi master/spi master.X'
"C:\Program Files (x86)\Microchip\xc8\v1.45\bin\xc8.exe" --chip=18F4550 -G -mdist/default/production/spi_master.X.production.map --double=24 --float=24 --emi=wordwrite --opt=+asm,+asmfile,-speed,+space,-debug,-local --addrqual=ignore --mode=free -P -N255 -I"../../../../librerie/LTlib_v_4.0.4/src" -I"../../../../librerie/LTlib_v_4.0.4/sch" -I"../../../../librerie/LTlib_v_4.0.4/inc" -I"../../../../librerie/LTlib_v_4.0.4/ex" -I"../../../../librerie/LTlib_v_4.0.4/conf" --warn=-3 --asmlist -DXPRJ_default=default --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,-plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" --memorysummary dist/default/production/memoryfile.xml -odist/default/production/spi_master.X.production.elf build/default/production/newmain.p1
Microchip MPLAB XC8 C Compiler (Free Mode) V1.45
Build date: Nov 15 2017
Part Support Version: 1.45
Copyright (C) 2017 Microchip Technology Inc.
License type: Node Configuration
:: advisory: (1233) Employing 18F4550 errata work-arounds:
:: advisory: (1234) * Corrupted fast interrupt shadow registers
:: warning: (1273) Omniscient Code Generation not available in Free mode
../../../../librerie/LTlib_v_4.0.4/src\LTlib_delay.c:97: warning: (520) function "_delay_s" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_IO.c:217: warning: (520) function "_IO_write_port" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_IO.c:307: warning: (520) function "_IO_read_port" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_IO.c:356: warning: (520) function "_IO_read_port_bit" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_IO.c:418: warning: (520) function "_IO_enable_pull_up_resistors" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_ADC.c:186: warning: (520) function "_ADC_abort_conversion" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_SPI.c:134: warning: (520) function "_SPI1_close" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_SPI.c:286: warning: (520) function "_SPI1_read_byte" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:83: warning: (520) function "_LCD_shift" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:97: warning: (520) function "_LCD_shift_cursor" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:110: warning: (520) function "_LCD_goto_line" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:135: warning: (520) function "_LCD_goto_xy" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:274: warning: (520) function "_LCD_backlight" is never called
:0: error: (500) undefined symbols:
_Clear_STATUS_reg(dist/default/production\spi_master.X.production.obj) _NRF24L01_Init_TX(dist/default/production\spi_master.X.production.obj) _Clear_BUFFER_TX_RX(dist/default/production\spi_master.X.production.obj)
(908) exit status = 1
nbproject/Makefile-default.mk:131: recipe for target 'dist/default/production/spi_master.X.production.hex' failed
make[2]: Leaving directory 'C:/Users/User/Documents/microcontrollori pic/progetti/bozze/spi master/spi master.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/Users/User/Documents/microcontrollori pic/progetti/bozze/spi master/spi master.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [dist/default/production/spi_master.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 1s)
da cosa dipende ?? grazie per l'aiuto
Code:
//*************************************
// INCLUDE
//*************************************
#include <xc.h>
#include <LTlib.h>
#include "LTlib_delay.h"
#include "LTlib_delay.c"
#include <module_IO.h>
#include <module_IO.c>
#include <module_ADC.h>
#include <module_ADC.c>
#include <module_SPI.h>
#include <module_SPI.c>
#include <LCD_44780.h>
#include <LCD_44780.c>
#include "nrf24l01.h"
//*************************************
// PROGRAMMA PRINCIPALE TX
//*************************************
int main(void)
{
// Array per memorizzare i dati da trasmettere
unsigned char bufferTX[32];
// Imposto tutte le porte come ingressi - I/O
IO_set_all_ports_as_inputs();
// Imposto tutta la PORTE come uscita per i segnali CE e CSN - I/O
IO_set_port_direction(IO_PORTE, IO_ALL_PORT_OUTPUT);
// Inizializzo il display LCD
LCD_initialize(20);
// Imposto tutte le porte analogiche come digitali - I/O
ADCON1 = 0x0F;
// Imposto oscillatore interno 8 MHz
OSCCON = 0b01110010;
// Apro l'SPI
SPI1_baudrate(SPI_CLK_OSC_16);
SPI1_mode (SPI_MODE_0);
SPI1_open (SPI_MASTER_DEVICE);
// Inizializzo il modulo NFR24L01
NRF24L01_Init_TX();
while (1)
{
LCD_home();
LCD_write_message("ADC: ");
LCD_write_integer (ADC_read_channel(ADC_CH1), 4, LCD_ZERO_CLEANING_ON);
delay_ms(50);
// L'adc del pic 18F4550 ha una risoluzione pari a 10 bit (0-1023), il che significa che ogni suo valore intero è composto da due
// byte, uno basso ed uno alto, memorizzati nei registri ADRESL e ADRESH. Poichè il payload (pacchetto di dati) minimo che posso
// inviare è un byte (max 32), per ricomporre questo intero devo disporre di due byte, sia in TX che in RX, ognuno dei quali mi
// serve per inviare i due valori separatamente. Poichè a tutti gli effetti ogni byte rappresenta un carattere da 0 a 255, faccio
// un casting da Int a Char per ognuno di essi quando li trasmetto. In fase di ricezione farò la cosa contraria.......
// CASTING da INT a CHAR per i valori low e high contenuti nei registri ADC_BUFFER_LOW e ADC_BUFFER_HIGH (corrispondenti ai registri
// ADRESL e ADRESH)
bufferTX[0] = (unsigned char) (ADC_BUFFER_LOW);
bufferTX[1] = (unsigned char) (ADC_BUFFER_HIGH);
// Pulisco i buffer TX e RX
Clear_BUFFER_TX_RX();
// Ripulisco il registro STATUS
Clear_STATUS_reg();
// Scrivo il buffer TX
unsigned char i;
NRF24L01_CSN = 0;
SPI1_write_byte (W_TX_PAYLOAD);
SPI1_write_byte (bufferTX[0]);
SPI1_write_byte (bufferTX[1]);
NRF24L01_CSN = 1;
NRF24L01_CE = 1;
delay_ms(1);
NRF24L01_CE = 0;
delay_ms(100);
}
}
utilizzo le librerie LTlib v4.0.4 come richiesto
ma quando compilo mi da questo errore :
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Users/User/Documents/microcontrollori pic/progetti/bozze/spi master/spi master.X'
make -f nbproject/Makefile-default.mk dist/default/production/spi_master.X.production.hex
make[2]: Entering directory 'C:/Users/User/Documents/microcontrollori pic/progetti/bozze/spi master/spi master.X'
"C:\Program Files (x86)\Microchip\xc8\v1.45\bin\xc8.exe" --chip=18F4550 -G -mdist/default/production/spi_master.X.production.map --double=24 --float=24 --emi=wordwrite --opt=+asm,+asmfile,-speed,+space,-debug,-local --addrqual=ignore --mode=free -P -N255 -I"../../../../librerie/LTlib_v_4.0.4/src" -I"../../../../librerie/LTlib_v_4.0.4/sch" -I"../../../../librerie/LTlib_v_4.0.4/inc" -I"../../../../librerie/LTlib_v_4.0.4/ex" -I"../../../../librerie/LTlib_v_4.0.4/conf" --warn=-3 --asmlist -DXPRJ_default=default --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,-plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" --memorysummary dist/default/production/memoryfile.xml -odist/default/production/spi_master.X.production.elf build/default/production/newmain.p1
Microchip MPLAB XC8 C Compiler (Free Mode) V1.45
Build date: Nov 15 2017
Part Support Version: 1.45
Copyright (C) 2017 Microchip Technology Inc.
License type: Node Configuration
:: advisory: (1233) Employing 18F4550 errata work-arounds:
:: advisory: (1234) * Corrupted fast interrupt shadow registers
:: warning: (1273) Omniscient Code Generation not available in Free mode
../../../../librerie/LTlib_v_4.0.4/src\LTlib_delay.c:97: warning: (520) function "_delay_s" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_IO.c:217: warning: (520) function "_IO_write_port" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_IO.c:307: warning: (520) function "_IO_read_port" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_IO.c:356: warning: (520) function "_IO_read_port_bit" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_IO.c:418: warning: (520) function "_IO_enable_pull_up_resistors" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_ADC.c:186: warning: (520) function "_ADC_abort_conversion" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_SPI.c:134: warning: (520) function "_SPI1_close" is never called
../../../../librerie/LTlib_v_4.0.4/src\module_SPI.c:286: warning: (520) function "_SPI1_read_byte" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:83: warning: (520) function "_LCD_shift" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:97: warning: (520) function "_LCD_shift_cursor" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:110: warning: (520) function "_LCD_goto_line" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:135: warning: (520) function "_LCD_goto_xy" is never called
../../../../librerie/LTlib_v_4.0.4/src\LCD_44780.c:274: warning: (520) function "_LCD_backlight" is never called
:0: error: (500) undefined symbols:
_Clear_STATUS_reg(dist/default/production\spi_master.X.production.obj) _NRF24L01_Init_TX(dist/default/production\spi_master.X.production.obj) _Clear_BUFFER_TX_RX(dist/default/production\spi_master.X.production.obj)
(908) exit status = 1
nbproject/Makefile-default.mk:131: recipe for target 'dist/default/production/spi_master.X.production.hex' failed
make[2]: Leaving directory 'C:/Users/User/Documents/microcontrollori pic/progetti/bozze/spi master/spi master.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/Users/User/Documents/microcontrollori pic/progetti/bozze/spi master/spi master.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [dist/default/production/spi_master.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 1s)
da cosa dipende ?? grazie per l'aiuto
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Pinna
-
- Moderatore
-
Less
Di più
- Messaggi: 1010
- Ringraziamenti ricevuti 107
6 Anni 11 Mesi fa #2
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic transceiver RF NRF24L01
Ciao Graziano, mi sembra di ricordare che una volta sia successa pure a me una cosa del genere quando avevo spostato la cartella.... io l'ho risolta in questo modo: ho aperto il progetto e nella finestra proprietà sono andato in XC8 compilers - include directories, ho cliccato il pulsante dei percorsi, ho cancellato i vecchi e selezionato da capo i nuovi percorsi nel seguente ordine: conf, inc e src.... spero di esserti stato d'aiuto
Marcello
p.s. ricorda che le librerie laurtec è meglio tenerle in C:\ (radice)
Marcello
p.s. ricorda che le librerie laurtec è meglio tenerle in C:\ (radice)
Chi vola vale, chi vale vola, chi non vola è un vile
I seguenti utenti hanno detto grazie : graziano1985
Si prega Accesso o Crea un account a partecipare alla conversazione.
- graziano1985
- Autore della discussione
- Giovane Utente
-
Less
Di più
- Messaggi: 26
- Ringraziamenti ricevuti 0
6 Anni 11 Mesi fa #3
da graziano1985
Risposta da graziano1985 al topic transceiver RF NRF24L01
quando stavo per arrendermi mi sono accordo che tra gli #include mancava :
#include "nrf24l01.c"
l'ho aggiunto ho provato a compilare e funziona !!!!!!
adesso devo studiarmi per bene tutta la documentazione e capire come aggiungere altri sensori(ADC) e il contatore di un timer
e poi passare alla pratica !!
per il momento grazie per l'aiuto anche sono sicuro che per realizzare il progetto ne avrò bisogno di tanto ... ahahaha
#include "nrf24l01.c"
l'ho aggiunto ho provato a compilare e funziona !!!!!!
adesso devo studiarmi per bene tutta la documentazione e capire come aggiungere altri sensori(ADC) e il contatore di un timer
e poi passare alla pratica !!
per il momento grazie per l'aiuto anche sono sicuro che per realizzare il progetto ne avrò bisogno di tanto ... ahahaha
Si prega Accesso o Crea un account a partecipare alla conversazione.
- graziano1985
- Autore della discussione
- Giovane Utente
-
Less
Di più
- Messaggi: 26
- Ringraziamenti ricevuti 0
6 Anni 11 Mesi fa #4
da graziano1985
Risposta da graziano1985 al topic transceiver RF NRF24L01
di nuovo !!!
questa volta il problema è su RXmain ho provato a cambiare il percorso come mi hai consigliato a anche reinstallato mplab, ma non compila , questo è l'errore :
:: advisory: (1233) Employing 18F4550 errata work-arounds:
:: advisory: (1234) * Corrupted fast interrupt shadow registers
:: warning: (1273) Omniscient Code Generation not available in Free mode
lib\LTlib_delay.c:97: warning: (520) function "_delay_s" is never called
lib\module_IO.c:217: warning: (520) function "_IO_write_port" is never called
lib\module_IO.c:307: warning: (520) function "_IO_read_port" is never called
lib\module_IO.c:356: warning: (520) function "_IO_read_port_bit" is never called
lib\module_IO.c:418: warning: (520) function "_IO_enable_pull_up_resistors" is never called
lib\module_SPI.c:134: warning: (520) function "_SPI1_close" is never called
lib\LCD_44780.c:83: warning: (520) function "_LCD_shift" is never called
lib\LCD_44780.c:274: warning: (520) function "_LCD_backlight" is never called
lib\nrf24l01.c:159: warning: (520) function "_Setup_TX_Mode" is never called
lib\nrf24l01.c:202: warning: (520) function "_NRF24L01_Init_TX" is never called
:0: error: (499) undefined symbol:
__ReadSPI(dist/default/production\rx.X.production.obj)
(908) exit status = 1
nbproject/Makefile-default.mk:131: recipe for target 'dist/default/production/rx.X.production.hex' failed
make[2]: Leaving directory 'C:/progetti/rx/rx.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/progetti/rx/rx.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [dist/default/production/rx.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 2s)
ho provato a guardare nei file.c e ho trovato questo errore (file allegato)
casa faccio ??
grazie per l'aiuto
questa volta il problema è su RXmain ho provato a cambiare il percorso come mi hai consigliato a anche reinstallato mplab, ma non compila , questo è l'errore :
:: advisory: (1233) Employing 18F4550 errata work-arounds:
:: advisory: (1234) * Corrupted fast interrupt shadow registers
:: warning: (1273) Omniscient Code Generation not available in Free mode
lib\LTlib_delay.c:97: warning: (520) function "_delay_s" is never called
lib\module_IO.c:217: warning: (520) function "_IO_write_port" is never called
lib\module_IO.c:307: warning: (520) function "_IO_read_port" is never called
lib\module_IO.c:356: warning: (520) function "_IO_read_port_bit" is never called
lib\module_IO.c:418: warning: (520) function "_IO_enable_pull_up_resistors" is never called
lib\module_SPI.c:134: warning: (520) function "_SPI1_close" is never called
lib\LCD_44780.c:83: warning: (520) function "_LCD_shift" is never called
lib\LCD_44780.c:274: warning: (520) function "_LCD_backlight" is never called
lib\nrf24l01.c:159: warning: (520) function "_Setup_TX_Mode" is never called
lib\nrf24l01.c:202: warning: (520) function "_NRF24L01_Init_TX" is never called
:0: error: (499) undefined symbol:
__ReadSPI(dist/default/production\rx.X.production.obj)
(908) exit status = 1
nbproject/Makefile-default.mk:131: recipe for target 'dist/default/production/rx.X.production.hex' failed
make[2]: Leaving directory 'C:/progetti/rx/rx.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/progetti/rx/rx.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [dist/default/production/rx.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 2s)
ho provato a guardare nei file.c e ho trovato questo errore (file allegato)
casa faccio ??

grazie per l'aiuto
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Pinna
-
- Moderatore
-
Less
Di più
- Messaggi: 1010
- Ringraziamenti ricevuti 107
6 Anni 11 Mesi fa #5
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic transceiver RF NRF24L01
Graziano, stai usando le librerie laurtec e quelle microchip? te lo chiedo perchè mi sta venendo un dubbio che trovo impiegabile...... mi esprimo meglio: ReadSPI è una funzione che appartiene alle librerie microchip mentre SPI1_read_byte è una funzione che appartiene alla libreria laurtec.... se stai utilizando le librerie laurtec questo significa un errore da parte mia nel firmware, facendo un copia incolla non ho corretto il richiamo della funzione di lettura...... ma quello che non mi spiego è perchè, con la versione del compilatore che ho usato io e l'ide utilizzato, molto vecchio, a me gira tutto bene..... sarebbe come a dire che i vecchi compilatori sono più "intelligenti" dei nuovi...... questo è un problema che mi secca non poco.... prova a sostituire ReadSPI con SPI1_read_byte e fammi sapere..... ti giuro che non ho mai avuto problemi. Un'altra cosa che potresti fare, così mi aiuti, è caricare direttamente i file hex già compilati per laurtec e microchip e vedere se tutto va a buon fine. Ti ringrazio perchè hai evidenziato un mio errore del quale non mi sono reso conto, anche perchè tutto funziona bene, te lo posso assicurare..... mi sono anche divertito a far comunicare il 4550 con l'atmega 2560, la mcu montata a bordo di arduino mega, spostando un servomotore, quindi.....
in base alle tue risposte dovrò correggere il firmware ed aggiornare il tutorial....
Marcello

Marcello
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- progetto can
- da marcelloraja
-
- MODULO GSM SIM900A
- da Mauro Laurenti
-
- Freedom III e compilazioni fallite
- da Mauro Laurenti
-
- Gestione degli errori su comunicazione seriale
- da Mauro Laurenti
-
- Timer0 e interrupt
- da Mauro Laurenti