Go Down

Topic: Giocando con l'Attiny85 (Read 61059 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy