Pages: [1]   Go Down
Author Topic: Baco nell'attiny core???!  (Read 667 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 182
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao ragazzi , anche oggi durante lo sviluppo del software per il mio attiny 45 arriva l'orrdia scoperta : le sotto funzioni void non funzionano , in parole povere non riesco a creare delle routine secondarie . Sto utilizzando il core tiny http://code.google.com/p/arduino-tiny/ e purtroppo non posso utilizzare un altro core perché questo é l'unico che supporta il PWM sul pin4 , ora io avrei bisogno di rendere possibile il funzionamento delle sotto routine ( perché riesco a crearle) o di modificare un'altro core per rendere possibile il PWM sul pin 4 qualcuno mi potrebbe aiutare ? smiley-confuse
Grazie Niko
« Last Edit: January 07, 2012, 05:29:45 am by nikone » Logged

Non possiamo pretendere che le cose cambino, se continuiamo a fare le stesse cose(albert Einstein )

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23149
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

le sotto funzioni void non funzionano , in parole povere non riesco a creare delle routine secondarie
Spiegati. Non ho capito il passaggio.
Se intendi funzioni richiamate all'interno del ciclo loop(), devo contraddirti perché a me funzionano. Potresti pubblicare il codice che ti da problemi?
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 182
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora intendo che dal loop non riesco a richiamare delle altre funzioni esterne al loop ,
Esempio
Code:
Void loop ()
{
prog;
}

Void prog ()
{
//fai qualcosa
}

(scusa la sintassi ma sto usando il cellulare)

Questo prog viene caricato perfettamente ma poi non và
Logged

Non possiamo pretendere che le cose cambino, se continuiamo a fare le stesse cose(albert Einstein )

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23149
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova mettendo le parentesi quando chiami prog:

Code:
void loop() {
  prog();
}

void prog() {
  ...
}

Ora non te li posto, sei sul cell, ma ho diversi codici con sub-routine chiamate da loop tutti funzionanti.
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 182
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Può essere veramente cosí semplice smiley-eek credo che ho sbagliato io comunque dopo provo
Grazie Niko
Logged

Non possiamo pretendere che le cose cambino, se continuiamo a fare le stesse cose(albert Einstein )

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 28
Posts: 5515
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche perchè quelle cosine li non credo vengano controllate dal core, è sintassi C e basta...  smiley-sweat
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12687
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi viene in mente una cosa: quando ho scritto il firmware per la barriera infrarossi in effetti, e NON HO CAPITO perché, le subroutine (io le chiamo così le void()) le ho dovute mettere tutte PRIMA della "setup", altrimenti non mi funzionavano, in pratica ho seguito queste sequenza:

variabili e costanti
subroutine varie
setup
loop

e così mi ha funzionato tutto; onestamente non ho approfondito ma anch'io metto la { al rigo sotto il void, non vorrei che sia davvero una fesseria del genere.
Logged


Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 28
Posts: 5515
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi viene in mente una cosa: quando ho scritto il firmware per la barriera infrarossi in effetti, e NON HO CAPITO perché, le subroutine (io le chiamo così le void()) le ho dovute mettere tutte PRIMA della "setup", altrimenti non mi funzionavano, in pratica ho seguito queste sequenza:

variabili e costanti
subroutine varie
setup
loop

e così mi ha funzionato tutto; onestamente non ho approfondito ma anch'io metto la { al rigo sotto il void, non vorrei che sia davvero una fesseria del genere.

Ma un attimo, hai dichiarato i prototipi delle funzioni prima del main -> o  loop che di si voglia ?
perchè sennò il sistema non le vede, a meno che non le scrivi prima del main
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23149
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Io ce l'ho prima o dopo la routine loop() ma le vede lo stesso.
Logged


Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 28
Posts: 5515
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Con o senza prototipi ?
io lo faccio così il programma:

Code:
int xy();
void richiama_z();

void setup(){
...
}

void loop(){
richiama_z();
...
xy();
}

facevo così anche usando il c programmando il computer e non mi ha mai dato problemi poi .. boh  smiley-mr-green
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23149
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Senza prototipi. Io scrivo normalmente tutte le sub sempre dopo la funzione loop(), perché tendo ad aggiungere sempre in fondo le cose che mi vengono a mente. Solo la gestione di cose molto delicate (interrupt, timer) la metto prima del setup() o tra seutp() e loop(), per evitare di toccare questo codice.
Logged


Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 28
Posts: 5515
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Senza prototipi. Io scrivo normalmente tutte le sub sempre dopo la funzione loop(), perché tendo ad aggiungere sempre in fondo le cose che mi vengono a mente. Solo la gestione di cose molto delicate (interrupt, timer) la metto prima del setup() o tra seutp() e loop(), per evitare di toccare questo codice.
fortunatamente ognuno ha il suo stile smiley
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12687
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Senza prototipi. Io scrivo normalmente tutte le sub sempre dopo la funzione loop(), perché tendo ad aggiungere sempre in fondo le cose che mi vengono a mente. Solo la gestione di cose molto delicate (interrupt, timer) la metto prima del setup() o tra seutp() e loop(), per evitare di toccare questo codice.
fortunatamente ognuno ha il suo stile smiley
Mai usati i prototipi, quindi l'unica resta la posizione delle {, ma mi pare davvero una cosa mortale smiley-eek-blue
Logged


Pages: [1]   Go Up
Jump to: