|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
Principiante - dubbio array e funzioni
Non sono sicura dell'esattezza del mio codice...
Ho creato un array di Pin : Pin pinArray[13]; for (i = 0, i < 13, i++) pinArray[i] = new Pin(1, 0); La classe Pin ha una funzione chiamata run(). Ora il mio dubbio è questo, devo fare un run di tutti i pin e quindi ho scritto questo pezzo di codice: for (i = 0, i < 13, i++){ pinArray[i]->run(); }; E' giusta come sintassi? Perchè questa forma con la freccetta l'ho trovata su un sito ma mi sembra strano che sia così Scusate ma sono davvero nuova in queste cose e faccio fatica ad orientarmi |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
Pin *pinArray[13];
for (i = 0, i < 13, i++) pinArray[i] = new Pin(1, 0); Quindi così risolverei il problema? Non sto provando codici a caso ![]() ![]() |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
Ok grazie
![]() ![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
il problema è che tutto questo gira su Arduino, quando avrò un problema specifico posterò volentieri
![]() Grazie mille ancora |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
Mi dà errore :'(
Il codice ora è questo : Pin *pinArray[13]; for (i = 0, i < 13, i++) pinArray[i] = new Pin(1, 0); for (i = 0, i < 13, i++){ pinArray[i]->run(); }; Mi dà errore alla riga "pinArray[i] -> run(); con il seguente messaggio: Sketch_Tesi:151: error: 'pinArray' was not declared in this scope |
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
ah quindi secondo te devo creare l'array di pin nel loop?
Io l'ho creato nel setup... |
![]() |
![]() |
![]() |
#7 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
Ti copio un pezzo che avevo scritto su un altro sito per farti capire piu o meno cosa sto facendo :
"Hello all, I'm working on a project for university, basically I'm trying to controll all the digital pins simoultaniously and in 3 possible different modes of working : mode1 simple on/off, mode2 PWM, mode3 sqware wave with 50%Duty-cicle and whatever frequency you like (from 1HZ to 31250Hz). To implement the mode3 I changed the frequency of Timer0 to 31250 and use the interrupt routine that i get to generate a sqware wave of the frequenzy I need using a counter variable -> FreqCounterValue = 31250 / 2 * Frequency. This is to give you the general idea of the project. " Diciamo che questo è un pezzo di codice dove ci sono le parti problematiche ( ho tolto pezzi per semplicità XD) Codice:
void setup() { //setup dei timer0,1,2 alla frequenza 31250Hz cli(); //stop interrupts //set timer0 interrupt a 31250Hz TCCR0A = 0; // imposto il registro TCCR0A a 0 TCCR0B = 0; // uguale per il registro TCCR0B TCNT0 = 0; // inizializzo il contatore a 0 OCR0A = 8; // (16*10^6) / (31250*64) -1 set compare match register TCCR0A |= (1 << WGM01); //enable modalità CTC TCCR0B |= (1 << CS01) | (1 << CS00); // Set CS01 e CS00 bits per il prescaler a 64 (< 256) TIMSK0 |= (1 << OCIE0A); //enable timer compare interrupt sei(); //enable interrupts Pin *pinArray[13]; //creazione dell'array di pin con i valori di default for (i = 0; i < 13; i++){ pinArray[i] = new Pin(1, 0); } Serial.begin(9600); // Default connection rate for my BT module Serial.println("Quale pin vuoi pilotare?"); } //interrupt routine here ISR(Timer0_COMPA_vect){ for (i = 0; i<13; i++){ pinArray[i]->runmode3(); } } void loop(){ //run pin con un for for (i = 0; i < 13; i++){ pinArray[i]->run(); }; vediamo se ho capito quello che dici te: Questo pezzo Codice:
Pin *pinArray[13]; //creazione dell'array di pin con i valori di default for (i = 0; i < 13; i++){ pinArray[i] = new Pin(1, 0); } Codice:
Pin *creaArray(qui cosa ci metto? XD) { Pin *pinArray[13]; for (i = 0; i < 13; i++){ pinArray[i] = new Pin(1, 0); return pinArray; } |
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
a questo punto fare tutto (sia inizializzazione che dichiarazione) nello scope globale?
![]() |
![]() |
![]() |
![]() |
#9 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
uffii non funziona... mi dà questo errore= "expected constructor, destructor, or type conversion before"
sono andata a guardare su dei forum a gente con questo problema e qualcuno ha risposto cosi : "You can't just declare stuff like that outside a function. You need to put it inside a function such as void loop(){}, or void setup(){};" cosa posso fare? ![]() |
![]() |
![]() |
![]() |
#10 |
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
no ok questo l'ho risolto , dovevo mettere fuori solo la dichiarazione e non anche l'inizializzazione!
niente piu errori!!! ![]() grazie mille per l'aiuto <3 Ultima modifica di Alarikka : 26-02-2015 alle 09:31. |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Sep 2006
Messaggi: 1539
|
-nit-
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:48.