Oppure

Loading
13/10/14 20:15
Roby94
Intanto che si cerca un chiarimento nell'altro post vorrei trovare una soluzione a questo grande problema, in una libreria ho un header di questo tipo
#ifndef TWI_H
#define TWI_H

#include <avr/io.h>
#include <util/delay.h>
#include "Buffer.h"

#ifndef TWI_RX_BUFFER_SIZE//Se la dimensione del buffer di ricezione non è stata definita
#define TWI_RX_BUFFER_SIZE 32//Dimensione del buffer software di ricezione del TWI
#endif

uint8_t _TWIRxBufferArray[TWI_RX_BUFFER_SIZE];//Array per il buffer di ricezione

Buffer TWIRxBuffer;//Buffer di ricezione

#endif

Il problema sta nel fatto che all'interno del file c della libreria ho necessità di usare questo BufferInit(&TWIRxBuffer, _TWIRxBufferArray, TWI_RX_BUFFER_SIZE); ma se vado a compilare la libreria il terzo argomento viene sostituito da 32, facendo cosi però impedisce all'utente di modificare questo dato ponendo un #define TWI_RX_BUFFER_SIZE xx come posso risolvere, non vorrei perdere questa funzionalità.
aaa
13/10/14 20:26
nessuno
Ho letto e riletto ma non ho capito il problema ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
13/10/14 20:55
Roby94
Scusa ho riscritto il post due volte per un errore del browser e forse la seconda volta sono stato un po superficiale.

Ho la mia bella libreria nell'header dichiaro

#ifndef TWI_RX_BUFFER_SIZE//Se la dimensione del buffer di ricezione non è stata definita
#define TWI_RX_BUFFER_SIZE 32//Dimensione del buffer software di ricezione del TWI
#endif

quindi l'utente prima di includere l'header può andare a definire la dimensione che avrà il buffer se non lo farà sarà 32.

All'interno del file C della libreria richiamo una funzione passandoli come parametro TWI_RX_BUFFER_SIZE, trattandosi di libreria pero il file C viene compilato prima del file finale dove verranno richiamate le sue funzioni. La compilazione in un primo momento rispetto al progetto finale porta il preprocessore a sostituire le definizioni TWI_RX_BUFFER_SIZE con 32, questo non va bene perché io conto sul fatto che l'utente possa cambiare questo valore nel progetto finale con un #define TWI_RX_BUFFER_SIZE xx prima dell'inclusione del file header. Dovrei trovare un metodo che permetta questa modifica post compilazione.

Da esprimere è un problema un po contorto. Chiedi se ci sono ancora punti oscuri.
aaa