Purtroppo un compilatore "avanzato" (nel senso, secondo me, che non lo voleva nessuno) che ti permette di scrivere in un linguaggio che dovrebbe assomigliare al C++, ma è stato pensato da qualche genio del male (io lo chiamo C--) e che cerca di riconoscere quanto più codice possibile, semplicemente saltando le linee di codice errato e che segnala errore solo quando non ne può fare a meno, per esempio quando una funzione diventa vuota oppure c'è un errore che non permette l'interpretazione di tutte le linee successive è semplicemente osceno.
perché poi? perché il "programmatore" potrebbe sentirsi triste vedendosi riconosciuto un errore?
Poi ci sono anche altre prodezze...
E studiarsi il C, poi il C++ originale e imparare a programmare in modo serio senza fare arducosate?
Errore struttura dati
Moderatore:
Paolino
6
voti
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12207
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
2
voti
PietroBaima ha scritto:Poi ci sono anche altre prodezze...
Aaaaargh! Mo' capisco...
It's a sin to write
instead of
(Anonimo).
...'cos you know that
ain't
, right?
You won't get a sexy tan if you write
in lieu of
.
Take a log for a fireplace, but don't take
for
arithm.
instead of
(Anonimo)....'cos you know that
ain't
, right?You won't get a sexy tan if you write
in lieu of
.Take a log for a fireplace, but don't take
for
arithm.-

DirtyDeeds
55,9k 7 11 13 - G.Master EY

- Messaggi: 7012
- Iscritto il: 13 apr 2010, 16:13
- Località: Somewhere in nowhere
4
voti
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
2
voti
fairyvilje ha scritto:Non prenderlo in giro ;)
he he he... ogni tanto mi diverto un po'
Però, in effetti, non avevo pensato che potrebbe essere irrispettoso nei confronti del C--
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12207
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
1
voti
DirtyDeeds ha scritto:Aaaaargh! Mo' capisco...
Ehhh... benvenuto tra gli ardutraumatizzati...
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12207
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
0
voti
Ho risolto in questo modo:
Non ho capito perché non accetta i prototipi... ma tutto funziona bene... Grazie a tutti :)
- Codice: Seleziona tutto
#include <Arduino.h>
// void setPinMatrix(int,int,int,int,struct Zone);
// void initialize(struct Zone);
//void readInput(struct Zone);
// boolean comp(struct Zone);
boolean Matrix[8][3] = {
{LOW,LOW,LOW}
, {LOW,LOW,HIGH}
, {LOW,HIGH,LOW}
, {LOW,HIGH,HIGH}
, {HIGH,LOW,LOW}
, {HIGH,LOW,HIGH}
, {HIGH,HIGH,LOW}
, {HIGH,HIGH,HIGH}
};
int i = 0;
int j = 0;
struct Zone {
int AnalogPin;
int pinMatrix[3];
int firstRead[8];
int AnalogRead[8];
};
void setPinMatrix(int pin0, int pin1, int pin2, int AnalogPin, struct Zone z){
z.pinMatrix[0] = pin0;
z.pinMatrix[1] = pin1;
z.pinMatrix[2] = pin2;
z.AnalogPin = AnalogPin;
}
void readInput(struct Zone z){
for( i = 0; i<8; i++){
for( j = 0; j<3; j++){
digitalWrite(z.pinMatrix[j], Matrix[i][j]);
}
z.AnalogRead[i] = analogRead(z.AnalogPin);
}
}
void initialize(struct Zone z){
for( i = 0; i<3; i++){
pinMode(z.pinMatrix[i], OUTPUT);
}
readInput(z);
for(j =0; j< 8;j++){
z.firstRead[j] = z.AnalogRead[j];
}
}
boolean comp(struct Zone z){
int f=0;
for( i = 0;i < 8; i++){
if(z.firstRead[i] == z.AnalogRead[i]){
f++;
}
}
return f==8;
}
Non ho capito perché non accetta i prototipi... ma tutto funziona bene... Grazie a tutti :)
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
1
voti
Perché hai dichiarato quel vettore globale? 
Non farlo per questo esistono i membri statici...
Impara ad interpretare gli errori. Ad ogni modo la tua struttura non è ancora definita quando dichiari i prototipi. Quindi non può funzionare. Ma la dichiarazione dei prototipi SERVE! non va tralasciata.
PS. In C++ non serve scrivere struct prima di costruire un oggetto della struttura...
Non farlo per questo esistono i membri statici...
Impara ad interpretare gli errori. Ad ogni modo la tua struttura non è ancora definita quando dichiari i prototipi. Quindi non può funzionare. Ma la dichiarazione dei prototipi SERVE! non va tralasciata.
PS. In C++ non serve scrivere struct prima di costruire un oggetto della struttura...
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
0
voti
Cioè tiipo dovrei scrivere così:
- Codice: Seleziona tutto
void miafunzione(Zone nomeVariabile){
.
//Codice
.
}
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
1
voti
Ripartiamo da capo ok? Dicci cosa vuoi fare e scriviamo del codice che sia formalmente corretto e non che vada semplicemente per benevolenza del compilatore :).
Torniamo all'idea di base, quella di usare una struttura con i membri e le funzioni. Ti richiedo se sai cosa siano le variabili statiche e se sai utilizzare i costruttori.
Comunque in linea di principio si usa così ;)
Ma passare copie di oggetti piuttosto che referenze è una pessima idea quando non necessario.
Torniamo all'idea di base, quella di usare una struttura con i membri e le funzioni. Ti richiedo se sai cosa siano le variabili statiche e se sai utilizzare i costruttori.
Comunque in linea di principio si usa così ;)
Ma passare copie di oggetti piuttosto che referenze è una pessima idea quando non necessario.
Ultima modifica di
fairyvilje il 7 apr 2014, 12:49, modificato 3 volte in totale.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
4
voti
E, già che ci siamo, dichiarare i tipi prima di utilizzarli?! Va be' che è C-=INFINITY però...
It's a sin to write
instead of
(Anonimo).
...'cos you know that
ain't
, right?
You won't get a sexy tan if you write
in lieu of
.
Take a log for a fireplace, but don't take
for
arithm.
instead of
(Anonimo)....'cos you know that
ain't
, right?You won't get a sexy tan if you write
in lieu of
.Take a log for a fireplace, but don't take
for
arithm.-

DirtyDeeds
55,9k 7 11 13 - G.Master EY

- Messaggi: 7012
- Iscritto il: 13 apr 2010, 16:13
- Località: Somewhere in nowhere
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 9 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
pigreco]=π