Pages: 1 2 3 [4] 5 6   Go Down
Author Topic: chiarimenti sugli interrupt  (Read 3345 times)
0 Members and 1 Guest are viewing this topic.
Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

cosa intendi per "polling"?
il sensore è questo: http://www.robot-electronics.co.uk/htm/srf05tech.htm
comunque questo è un codice di prova dopo avrò 4 di questi sensori e tante altre cose...
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

allora, nuova questione smiley-sweat quel codice che ho postato prima funziona bene, devo sistemarlo ancora un po' ma per provare va bene... fin ora ho provato sugli INT0 e 1, ma avendo a disposizione altri 4 INT sul mega volevo usare anche quelli, il problema è che  lo stesso codice con le opportune modifice da risultati strani su questi altri 4 pin... sembra che rillevi dei cambiamenti che in realtà non ci sono e che sugli INT0 e 1 non erano presenti... cosa può essere? non mi sembra di aver sbagliato niente perchè il codice è lo stesso... smiley-confuse
confido nel vostro aiuto! grazie in anticipo! smiley-wink
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

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

Io continuo a non capire. Ma perché vuoi usare lo stesso pin per trasmettere il segnale e per leggerlo con un interrupt, essendo così costretto a disattivare l'interrupt per evitare letture errate?

1) attivi l'INT0
2) spedisci il treno di impulsi per attivare il sensore
3) l'ISR a questo punto legge le risposte del sensore e le "presenta" al codice principale
4) il codice gestisce le informazioni in ricezione e poi torna al punto 2)
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

perchè il sensore usa lo stesso pin per fare queste due operazioni...
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

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

perchè il sensore usa lo stesso pin per fare queste due operazioni...
smiley-sweat

E quanto tempo passa dall'inizio dei segnali di attivazione alla risposta del sensore?
Ce la fai, cioè, a commutare lo stato del pin da OUTPUT ad INPUT in quel lasso di tempo?

PS:
per "polling" si intende la procedura di raccolta dati.
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
This mode uses a single pin for both Trigger and Echo signals, and is designed to save valuable pins on embedded controllers. To use this mode, connect the mode pin to the 0v Ground pin. The echo signal will appear on the same pin as the trigger signal. The SRF05 will not raise the echo line until 700uS after the end of the trigger signal. You have that long to turn the trigger pin around and make it an input and to have your pulse measuring code ready. The PULSIN command found on many popular controllers does this automatically.
si ho 700us ce la faccio smiley ho sempre fatto con pulseIn per vedere la durata dell'impulso, adesso volevo provare a fare con gli interrupt, con i pin 2 e 3 funziona (INT0 e INT1), ma con gli altri no e non capisco il perchè, il codice è uguale...  smiley-confuse
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

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

Però quel sensore funziona anche con pin separati.

con i pin 2 e 3 funziona (INT0 e INT1), ma con gli altri no e non capisco il perchè, il codice è uguale...  smiley-confuse
I pin del Mega sono differenti.
http://arduino.cc/en/Hacking/PinMapping2560

L'INT0 e 1 non sono mappati sui pin 2 e 3 ma su 21 e 20, vedo dall'immagine.
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Però quel sensore funziona anche con pin separati.
si si lo so ma preferisco usarlo così che mi risparmio qualche pin...

Quote
I pin del Mega sono differenti.
http://arduino.cc/en/Hacking/PinMapping2560

L'INT0 e 1 non sono mappati sui pin 2 e 3 ma su 21 e 20, vedo dall'immagine.
mmmm non sono d'accordo, io ho letto così:
Quote
External Interrupts: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4), 20 (interrupt 3), and 21 (interrupt 2). These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details.
sugli INT0 (pin 2) e INT1 (pin 3) funziona bene, mentre sugli INT2, INT3, INT4 e INT5 no, non so il perchè smiley-sad
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

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

Non ho una MEGA per poterti dire chi ha ragione e chi ha torto ma il datasheet, sulla cui autorevolezza non ci piove, conferma la mappatura di quell'immagine e non dello scritto che hai riportato. A questo punto andrebbe aperta la libreria che gestisce gli interrupt per vedere come mappa i pin ma è una cosa che non mi va di fare dato che non ho interesse a farla  smiley-wink

EDIT:
difatti ho ragione io (ed il datasheet). Se vedi i pin 2 e 3 dell'immagine che ti ho postato, noti che su quei pin sono riportati gli INT4 e INT5! Quindi la mappatura fatta dalla libreria di Arduino "inganna" perché rigira i pin un po' come vuole. E c'è una priorità nell'esecuzione degli interrupt che questo stravolgimento non tiene conto. Quindi non so a cosa poi viene mappato l'INT4 se l'INT4 è venduto come INT0  smiley-wink
« Last Edit: April 10, 2012, 11:20:19 am by leo72 » Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ma gli INT0 e INT1 funzionano, sono gli altri che rillevano cose strane... smiley-confuse
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

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

ma gli INT0 e INT1 funzionano, sono gli altri che rillevano cose strane... smiley-confuse
Rileggi il mio edit precedente smiley-lol
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

eh ecco grazie smiley sarebbe interessante da capire perchè leggono cose strane...
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

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

Ti consiglio di studiarti il datasheet, dandogli una scorsa molto veloce ci sono alcune cose da tener conto nell'uso degli INT, che non so se il codice dell'Arduino esegue (es. pag. 113 in basso).

Buon divertimento.  smiley-razz
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

pag 113 di cosa? del datasheet del atmega2560?
io ho visto che sul reference dicevano che per il mega erano disponibili questi 4 INT in più ma non ho letto controindicazioni... boh adesso guardo un po' in giro... grazie comunque smiley-wink
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10103
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

un pin in input lasciato libero legge valori a caso.. molto utile per rilevare la presenza di esseri viventi nelle vicinanze :-)
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: 1 2 3 [4] 5 6   Go Up
Jump to: