Pages: [1]   Go Down
Author Topic: TIMER1  (Read 450 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je bricole les interruptions sur Pic mais avec arduino je débute.

J'ai trouvé un bout de code qui me convient sur arduino nano 3.0

Il configure pour déclencher une fonction

Problèmes

1 Quelqu'un peut-il me dire comment comprendre
TCCR1A = B00110001;
TCCR1B = B00010010;
TCCR1C = B00000000;
TIMSK1 = B00000010;
TIFR1  = B00000010;
OCR1A = 22000;
OCR1B = 1000;

2 Puis-je transposer sur un arduino mega 2560 ? Les registres sont-ils les mêmes ?

3  Un lien vers de la prose en français sur les registres et les interruptions

4 dans un autre registre : que veut dire (1 << WGM12)

Cordialement

fr
« Last Edit: February 09, 2013, 11:36:10 am by fr » Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

1 Quelqu'un peut-il me dire comment comprendre
TCCR1A = B00110001;
TCCR1B = B00010010;
TCCR1C = B00000000;
TIMSK1 = B00000010;
TIFR1  = B00000010;
OCR1A = 22000;
OCR1B = 1000;
Pour cela il faut ce référer au datasheet du microcontrôleur :
http://www.atmel.com/Images/doc8161.pdf (page 134)

2 Puis-je transposer sur un arduino mega 2560 ? Les registres sont-ils les mêmes ?
Normalement les noms des registres sont les mêmes.
Par contre il faudra vérifier que les bits ont la même significations.

3  Un lien vers de la prose en français sur les registres et les interruptions
http://www.pobot.org/Vecteurs-d-interruption-pour-AVR.html
http://home.roboticlab.eu/fr/avr/interrupts
http://em6.clubs.resel.fr/coupe_2003/docs/ProgrammationAVR.pdf
http://193.49.146.171/~cottence/ArduinoCottenceau1112.pdf

4 dans un autre registre : que veut dire (1 << WGM12)
"1" décalé de WGM12 bits vers la gauche.
Ça équivaut à faire _BV(WGM12) (BV = Bit value)
C'est très utile avec un OU binaire pour concaténer plusieurs options de registre dans un format "humainement lisible".
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1392
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

du fait que les timers ont trois comparateurs sur le mega, et deux seulement sur le uno, le mega a des registres en plus, et les bits ne sont pas au même endroit. mais le datasheet de atmel est vraiment très bien fait je trouve, et si tu connais déjà la bidouille de registres, alors tu t'en sortiras très bien!

Les arduinos sont assez polyvalents, donc l'utilisation des registres est longuement documentée (et c'est très bien)!
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir et merci d'avoir répondu aussi vite.

Pour les points 1, 2 et 3, j'aurais préféré du mâché , prêt à être utilisé mais faudra bien que j'apprenne un peu. :-)

Pour le 4 : ai-je bien compris ?

TCCR1B |= ((1 << CS10) | (1 << CS11));
Veut donc dire le bit CS10 et le bit CS11 sont à mettre à 1 dans TCCR1B

 |= (...  c'est quoi le premier caractère ?  |=(...) signifie ?

Logged

france
Offline Offline
God Member
*****
Karma: 15
Posts: 846
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

|= est un  bitwise OR
http://arduino.cc/en/Reference/BitwiseCompoundOr
Logged

Christian

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Un grand merci !
Logged

Pages: [1]   Go Up
Jump to: