Go Down

Topic: Giocando con l'Attiny85 (Read 48 times) previous topic - next topic

leo72

Premetto che il Tiny Core non l'ho usato ma essendo il PinChangeInterrupt una lib va scompattata in /sketchbook/libraries così da essere disponible come #include nel modo classico.

Michele Menniti

#76
May 21, 2011, 08:32 am Last Edit: May 21, 2011, 09:06 am by menniti Reason: 1
Scusa, lo so che passo per imbranato (e lo sono  :smiley-red:) ma non ho una cartella /sketchbook/libraries, bensì la sola libraries che contiene le varie librerie classiche "eeprom", "ethernet", "liquidcrystal", ecc., quindi devo metterla lì dentro?

EDIT:
naturalmente poi devo mettere il nome della libreria nel mio sketch: #include <PinChangeInterruptSimple.h>?
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

leo72

LA cartella /sketchbook/libraries normalmente NON esiste.
Va creata e lì andrebbero messe le librerie di terzi per Arduino per non mescolarle a quelle di sistema fornite con l'IDE. In questo modo non sei costretto quando aggiorni l'IDE a rimettere tutte le librerie personali e così sai anche subito quali sono quelle ufficiali e quali no.

Michele Menniti

Ora ho capito, perfetto, tra oggi e domani farò le prove e ti faccio sapere, naturalmente quando tutto funziona metterò ordine nelle varie informazioni, per i posteri..... XD
Grazie Leo, la tua signora è fortunata ad avere sposato un ragazzo paziente come te :D
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

astrobeed


LA cartella /sketchbook/libraries normalmente NON esiste.


Giusto ma vale per Linux, con Windows la cosa funziona in modo simile, ma diverso al tempo stesso, la cartella sketchbook in realtà è:

"..\Documenti\Arduino"

Che è la cartella dove l'IDE mette gli sketch creati dall'utente, basta creare al su interno la cartella "libraries" e metterci dentro quelle aggiuntive, in questo modo con i cambi versione dell'IDE non è necessario ricordarsi di spostare lavori e librerie.


leo72


Grazie Leo, la tua signora è fortunata ad avere sposato un ragazzo paziente come te :D


Peccato che lei non la pensi così  :smiley-roll-blue:

Michele Menniti



LA cartella /sketchbook/libraries normalmente NON esiste.


Giusto ma vale per Linux, con Windows la cosa funziona in modo simile, ma diverso al tempo stesso, la cartella sketchbook in realtà è:

"..\Documenti\Arduino"

Che è la cartella dove l'IDE mette gli sketch creati dall'utente, basta creare al su interno la cartella "libraries" e metterci dentro quelle aggiuntive, in questo modo con i cambi versione dell'IDE non è necessario ricordarsi di spostare lavori e librerie.


In realtà io quel percorso l'ho cambiato, per mia comodità, e comunque devo metterla nella cartella dei miei sketch. OK, provo.
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

leo72


comunque devo metterla nella cartella dei miei sketch.


Esatto, il succo è quello.

Michele Menniti

Grazie, le persone si apprezzano solo quando si perdono...per un paio di settimane... prova, vedi quante telefonate e manifestazioni di affetto  :* :* :*
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

Michele Menniti

uhm, primo problemino:
#include <PinChangeInterrupt.h> (con la board at85 arduino isp), mi dà errore

In file included from Sleep_Mode_Test_ATTINY.cpp:2:
C:\percorso...\libraries\PinChangeInterrupt/PinChangeInterrupt.h:29:32: error: core_build_options.h: No such file or directory

Cosa cerca quest'altra libreria? Forse si trova nella tiny che però ho messo in hardware?
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

leo72

#85
May 21, 2011, 12:29 pm Last Edit: May 21, 2011, 12:30 pm by leo72 Reason: 1
Con il Tiny core devi compilare per le board specificate dal core e non quelle inserite dal mio file boards.txt...
Questo perché PinChange si aggancia a librerie del Tiny core stesso.

Michele Menniti

Agliah! e come faccio ad inviare lo sketch al chip se non uso la tua board?
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

leo72

Ma hai provat e non ti funziona?
Perché vedo comunque che anche il file boards.txt presente in /hardware/tiny specifica arduino:arduinoisp come programmatore.

Michele Menniti

Allora, se uso il boards.txt della tiny la compilazione va a buon fine ma poi non riesco ad inviare lo sketch; se invece uso il tuo file boards mi dà errore di compilazione, quindi mi conviene estrarre le righe di attyny85 & ISP e metterle nel boards originale, ma non è la stessa cosa, visto che devo comunque usare la tua per inviare lo sketch? :smiley-eek-blue:
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

Michele Menniti

Ho riunito i due gruppi cores, in boards.txt ho inserito le sole righe dell'attiny85 & ISP, la compilazione funziona, l'upload anche, ma il risultato non cambia. Provo a spiegare la semplice prova dare fare:
Code: [Select]
#include <avr/sleep.h>  // libreria standard (avrlib) per lo sleep
#include <PinChangeInterrupt.h>
/* Sleep test */
#define Sveglia 2    // pin 7 dell'attiny corrispondente a INT0
#define LED     4    // pin 3 dell'attiny85

void sbadiglio()        // risveglio dallo sleep
{
  // inserire eventuali azioni legate all'interrupt
}

void setup()
{
  pinMode(Sveglia, INPUT);
  //digitalWrite(Sveglia, HIGH);
  pinMode(LED, OUTPUT);
 
  //digitalWrite(Sveglia, 1);              // pull up attiva sul pin 2
  attachInterrupt(0, sbadiglio, HIGH);    // interrupt 0
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);   // setta registri per il modo sleep
  sleep_enable();                        // abilita la sleep all'uso
}

void A_nanna()                      // funzione attivazione sleep
{
    attachInterrupt(0, sbadiglio, LOW); // riattiva l'interrupt
    ADCSRA &= ~(1 << ADEN);
    sleep_mode();                          // mette in stato di sleep
    sleep_disable();      // disattiva la modalità sleep e riporta il micro a piena operatività
    detachInterrupt(0);  // disattiva l'interrupt
}
void loop()
{
  for(byte i=0;i<4;i++)
   {
    digitalWrite(LED, HIGH);
    delay(500);
    digitalWrite(LED, LOW);
    delay(500);
   }
  A_nanna();               // mette il micro in sleep
}

Per realizzarlo basta alimentare il chip e collegare una R+led sul pin 3 dell'attiny85 (che non è tra quelli interessati all'upload).
Appena si alimenta (ma Arduino deve essere scollegato) il led fa 4 lampeggi e poi si spegne, segno che è in sleep; collegando per un attimo il pin 7 (INT0) del chip a GND il led riprende a lampeggiare (s'è svegliato) finché non si scollega.
A me serve poter mettere (v. scritte in rosso) LOW invece di HIGH e CHANGE invece di LOW, in modo che il chip esca dallo sleep ANCHE se collego il 7 al +5, ma anche con questa libreria non cambia nulla, se cambio questi valori si spegne e non s'accende più fino al reset.
Allora non capisco se la libreria serve ad altro o se bisogna metterci mano, ma che libreria sarebbe? naturalmente ho provato anche la versione "Simple".
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

Go Up