Pages: 1 ... 11 12 [13] 14 15 ... 22   Go Down
Author Topic: Regolatore di tensione per pannello solare  (Read 18643 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi sto un attimino inc...arrabbiando...
La routine di gestione dello sleep e dell'int che avevo postato giorni fa in un thread separato non ne vuol sapere di funzionare sull'Atmega standalone! Non riesco a svegliare il micro una volta messo in letargo, incredibile!
Eppure lo sketch provato sull'Arduino funzionava perfettamente. Ho provato anche a cambiare fronte di controllo, da RISING a LOW (per via del fatto che LOW è eseguito anche in maniera asincrona) eppure pare non legga il segnale sul piedino. Ho provato anche a ponticellarlo fisicamente a GND (quindi più LOW di quello...) eppure nulla! Non si sveglia....
Non vorrei fosse come sull'Attiny84 che, sulla carta, lo sleep unito al pinchange funziona in un certo modo, poi nella realtà ho dovuto disattivare manualmente i piedini che gestivano l'I2C perché il micro si svegliava con le tensioni lette su SDA e SCL... Ora qui non so cosa gli dia noia....
COMINCIO A ODIARE GLI ATMEL.... smiley-mad smiley-mad
Logged


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

Caaaalma smiley-confuse
Io il 328 l'ho provato, anche se da solo, con una routine che era giusto un led che faceva qualche lampeggio e poi se ne andava a dormire. Con attachInterrupt LOW si riaccendeva all'istante; poiché avevo bisogno del CHANGE allora ho implementato la PinChangeInterrupt per usare attachPCInterrupt CHANGE, e ha funzionato lo stesso. Tu non avevi messo mano ad una di queste librerie non molto tempo fa? Non è che....
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

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

No, le avevo toccate solo in merito al discorso Tiny. Per l'Atmega328 ho usato il comando standard attachInterrupt e detachInterrupt, niente roba "manomessa". Tant'è che i test sull'Arduino erano andati positivamente, mentre sulla breadboard non c'è verso di risvegliare il micro.
Il problema è che sull'Arduino non avevo NIENTE di collegato alla scheda, qui ho di tutto e di più collegato a quel malefico chip.... vai te a sapere cos'è che gli dà noia!

Che poi mi sono accorto di una cosa: che quel "qualcosa" che gli dà noia gli dà noia da subito perché il micro, secondo il codice, dovrebbe andare SUBITO in letargo (così faceva sull'Arduino) mentre qui si accende il display e si attiva il menu interattivo che è DOPO la funzione di chiamata dello sleep per cui c'è qualche segnale che rompe le balle... UFFA...  smiley-roll-blue
Logged


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

Caaaalma smiley-confuse
Io il 328 l'ho provato, anche se da solo, con una routine che era giusto un led che faceva qualche lampeggio e poi se ne andava a dormire. Con attachInterrupt LOW si riaccendeva all'istante; poiché avevo bisogno del CHANGE allora ho implementato la PinChangeInterrupt
PS:
ecco, tu dicesti (e mi confermi ora) di aver usato la PinChangeInterrupt per il 328. Ma quale? Quella del Tiny core?
Logged


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

Caaaalma smiley-confuse
Io il 328 l'ho provato, anche se da solo, con una routine che era giusto un led che faceva qualche lampeggio e poi se ne andava a dormire. Con attachInterrupt LOW si riaccendeva all'istante; poiché avevo bisogno del CHANGE allora ho implementato la PinChangeInterrupt
PS:
ecco, tu dicesti (e mi confermi ora) di aver usato la PinChangeInterrupt per il 328. Ma quale? Quella del Tiny core?
Ecco, avevo glissato perché mi era venuto proprio il dubbio, ora direi di essere più che certo che esite quella specifica per il 328, e che poi ho scaricato quella del tiny, avendo spostato tutto sui nanetti; vedo che nelle mie libraries c'è una PinChangeInt ed una PinChangeInterrupt, credo proprio che la prima sia quella specifica per il 328, ce l'hai sulla posta.  smiley-lol
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

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

Adesso la provo.
Logged


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

Non mi riesce usarla....
sarò rinco, ma tu scrivi attachPCinterrupt, nella lib c'è PCattachInterrupt... poi non capisco: devo specificare il PCINT oppure il piedino a cui agganciare l'evento? Non c'è una documentazione?
Logged


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

Non mi riesce usarla....
sarò rinco, ma tu scrivi attachPCinterrupt, nella lib c'è PCattachInterrupt... poi non capisco: devo specificare il PCINT oppure il piedino a cui agganciare l'evento? Non c'è una documentazione?
No, sono io che faccio confusione con quella della Tiny che sto usando sempre smiley-red; io ricordo di aver usato, sempre per le prove, il pin 4 del 328 (INT0), quindi uno dei pin preposti (l'altro è il 5, INT1); forse il PCINT ti permette di usare un pin diverso da questi due. Ti ho mandato ciò che ho, ma ricordo che nella libreria c'era scritto tutto, solo che io non ci capivo nulla, poi BB mi consiglio di usare quel comando; intanto che fai le prove cerco su Internet

E' nel Playground: http://www.arduino.cc/playground/Main/PinChangeInt

Dice: PCattachInterrupt(pin,userFunc,mode)
pin lo stabilisci tu, userFunc è la function da lanciare al risveglio, mode la tipologia di evento che deve attivare l'interrupt

C'è la versione aggiornata al 22/7/2011: http://code.google.com/p/arduino-pinchangeint/downloads/detail?name=PinChangeInt.zip&can=2&q=
« Last Edit: August 19, 2011, 05:11:25 pm by menniti » Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

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

No, fermo un attimo... INT0 è sul pin PD2, che corrisponde al piedino 4 ed al pin di Arduino D2 (datasheet pag. 89). Mi confermi, vero?  smiley-sweat
Logged


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

No, fermo un attimo... INT0 è sul pin PD2, che corrisponde al piedino 4 ed al pin di Arduino D2 (datasheet pag. 89). Mi confermi, vero?  smiley-sweat
E io che ho scritto?
Quote
io ricordo di aver usato, sempre per le prove, il pin 4 del 328 (INT0),
ho parlato di 328 non di Arduino, stai lavorando in stand alone smiley
Comunque tutte le info che ho aggiunto dovrebbero essere risolutive.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

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

Quote
E io che ho scritto?
Ah, sì, è vero... sarà il caldo (33°C in soffitta dove ho il mio "angolino") unita all'ora... scusa.

La versione aggiornata l'ho scaricata. Cmq non mi funziona: c'è qualcosa in standalone che gli dà noia... non si risveglia, posso provare quanto voglio. Ma tu che modalità energetica usavi, PWR_DOWN o PWR_SAVE? Io uso PWR_SAVE per via del fatto che devo usare il TIMER2. Con PWR_DOWN funziona (ho già provato) ma non va il TIMER2 (giustamente), però l'INT0 dovrebbe funzionare con entrambe. O sono io il solito rinco che non ha capito qualcosa?

Oggi a casa riproverò sull'Arduino per capire se ci sono davvero interferenze dagli altri piedini. Cmq mi sto un po' scassando le balle con 'ste cose, ci sto perdendo più tempo, in proporzione, che a fare il resto.
Logged


Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 7
Posts: 2961
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non è che ti stai confondendo fra INT0 e PCINT0? smiley-roll
Logged

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

Relativamente a cosa?

Cmq, lo stesso codice sull'Arduino senza nulla collegato ai pin funziona, messo sull'Atmega standalone non va.
Logged


Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 7
Posts: 2961
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

anche lo standalone gira a 16mhz?
Logged

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

Sul datasheet, pag. 70, c'è scritto:
Quote
Note that recognition of falling or rising edge
interrupts on INT0 or INT1 requires the presence of an I/O clock, described in ”Clock Systems
and their Distribution” on page 26. Low level interrupt on INT0 and INT1 is detected asynchro-
nously. This implies that this interrupt can be used for waking the part also from sleep modes
other than Idle mode. The I/O clock is halted in all sleep modes except Idle mode.
OK. Non uso FALLING o RISING perché sono sincroni ed in PWR_SAVE l'I/OCLK non va per cui adopero il livello LOW, che è asincrono e, stando al datasheet, dovrebbe essere intercettato sempre. Così è sull'Arduino, così non è sullo standalone.

PS:
No, lo standalone gira a 8 MHz con oscillatore interno abilitato, BOD attivo a 2,7V, nessuno spazio per il bootloader.
Logged


Pages: 1 ... 11 12 [13] 14 15 ... 22   Go Up
Jump to: