Vous êtes sur la page 1sur 4

Département de Génie Electrique Micro-processeurs et Micro-Contrôleurs MEGHERBI Hassina

Filière d'Automatique 3ème année Licence 2015-2016

TPN°10
Programmation du TIMER/counter0
0 en mode normal

But du TP:

Ce TP permet en premier temps d’apprendre


d à générer automatiquement le code source
en C nécessaire pour la programmation du Timer0 du microcontrôleur ATtiny 2313 et
en deuxième temps d’apprendre à programmer le timer0 en mode normal
normal.

Manipulation 1 :

Suivez les étapes de création d’un nouveau projet.


projet Et lorsque
orsque la fenêtre
CodeWizardAVR apparait :

-Changer le type de la puce à Atiny2313V , la


fréquence horloge à 8Mhz (1-2)2).

-Cliquer sur l’anglet Timers

-Cocher devant - Overflow interrupt

- Compare Match A interrupt

- Compare Match B interrupt

-De
De la bar du menu sélectionner File
File Generate, Save and Exit

-Continuer
Continuer à suivre les étapes décrites du TP N1 pour avoir le fichier code source en c
dont le contenu est généré automatiquement par VCR Wizard.

1/4
Département de Génie Electrique Micro-processeurs et Micro-Contrôleurs MEGHERBI Hassina
Filière d'Automatique 3ème année Licence 2015-2016

-Eliminer les lignes non-nécessaires, et laisser juste ce qui suit :

#include <tiny2313.h>
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here

// Timer 0 output compare A interrupt service routine


interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
// Place your code here

// Timer 0 output compare B interrupt service routine


interrupt [TIM0_COMPB] void timer0_compb_isr(void)
{
// Place your code here

void main(void)
{
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

PORTB=0x00;
DDRB=0x04;

TCCR0A=0x40;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

TIMSK=0x07;

// Global enable interrupts


#asm("sei")

while (1)
{

};
}

2/4
Département de Génie Electrique Micro-processeurs et Micro-Contrôleurs MEGHERBI Hassina
Filière d'Automatique 3ème année Licence 2015-2016

Manipulation2 :

Programmer le timer0 du microcontrôleur ATtiny 2313 pour avoir les caractéristiques


suivantes :

 La source du signal horloge du system : un oscillateur à quartz ;

 Facteur de division du signal horloge provenant d’un oscillateur à quartz : 1 ;

 Facteur de division du signal horloge du timer : 256

 Mode d’opération : mode normale ;

 Pin de sortie OC0A : déconnecté ;

 Pin de sortie OC0B : inverser en cas d’égalité (toggle on compare match) ;

 Valider les interruptions de dépassement, compare match A et B ;

Notez bien : Suivez la démarche décrite dans la page 4/4

Extra manipulation :

Faire clignoter la LED reliée au pin 0 du port B en utilisant une interruption de


débordement du timer0 précédemment programmé. La période de clignotement est 8
fois plus grande que la période du signal OC0B généré.

3/4
Département de Génie Electrique Micro-processeurs et Micro-Contrôleurs MEGHERBI Hassina
Filière d'Automatique 3ème année Licence 2015-2016

Programmation du timer/counter0
I. Trouver les valeurs à mettre dans les bits CLKPS3-0 de registre CLKPR.
(CLKPS3 CLKPS2 CLKPS1 CLKPS0) = …………….
Justification: ………………………………………………………………………………………………..

II. Donner les valeurs des bits des registres de contrôle TCCR0A et TCCR0B en justifiant.
 CS02 CS01 CS00=(…………..)2
Justification: ………………………………………………………………………………………………..
 WGM2=….., WGM1=….., WGM0=……….
Justification: ………………………………………………………………………………………………..
 COM0A1=……..et COM0A0=……..
Justification: ………………………………………………………………………………………………..
 COM0B1=……..et COM0B0=……..
Justification: ………………………………………………………………………………………………..
 FOC0A=…….. ; FOC0B=……...
Justification: ………………………………………………………………………………………………..

Bit 7 6 5 4 3 2 1 0
COM0A1 COM0A0 COM0B1 COM0B0 - - WGM01 WGM00 TCCR0A
……… ……. …….. ……. …… ……. ……. …….. =0x…..

Bit 7 6 5 4 3 2 1 0
FOC0A FOC0B - - WGM02 CS02 CS01 CS00 TCCR0B
……… …….. ……… …….. …….. …… ……. ……. =0x….

III. Donner la valeur du registre de direction nécessaire pour configurer le pin PD5/OC0B.

7 6 5 4 3 2 1 0 
Les indices
DDR….. =0x………..
. . . . . . . . 
Mettre e pour entrée et s pour sortie

IV. Donner les valeurs des bits utilisés de registre TIMSK en justifiant.
TOIE0=……… ; OCIE0A=…….. ; OCIE0B=………;
Justification:
………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………

……………………………………………………………………………………………………………………………….

Bit 7 6 5 4 3 2 1 0
TOIE1 OCIE1A OCIE1B - ICIE1 OCIE0B TOIE0 OCIE0A TIMSK
……… ………. ……….. …………. ……. ………. ……… …….. =0x……

4/4

Vous aimerez peut-être aussi