| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
halifax NOUVEAU

Inscrit le: 02 Avr 2008 Messages: 4
|
Posté le: 09 Avr 2008 21:51 Sujet du message: intérruption par overflow du timer2 récalcitrant intérruption par overflow du timer2 récalcitrant |
|
|
bonjour,
j'ai un problème sur mon code.
c'est surement une erreur toute bette mais je la vois pas
enfaite quand je le simule il rentre dans l'interruption int0 sans problème
après il devrait autorisé une interruption par comparaison du timer 2 mais le problème c'est que le timer 2 dépasse ocr2 sans exécuté l'interruption du timer 2.
je pense que vous avez l'œil plus averti que moi sur le sujet, pouvez vous m'aidez????
merci
j'ai mis que un bout du programme bien sur ya le reste du wizzard
petite précision c'est sur atmega16l.
| Code: | int A=0;
int C=1;
interrupt [EXT_INT0] void ext_int0_isr(void)
{
A=1;
TIMSK=0x80;
}
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
switch (A) {
case 1:
while(6)
OCR2=0x94; //horizontal
A=2;
break;
}
}
void main(void)
{
PORTD=0x80;
DDRD=0x80;
TCCR2=0x7B;
TCNT2=0x00;
OCR2=0x08;
GICR|=0x40;
MCUCR=0x00;
MCUCSR=0x00;
GIFR=0x40;
TIMSK=0x00;
|
|
|
| Revenir en haut de page |
|
 |
halifax NOUVEAU

Inscrit le: 02 Avr 2008 Messages: 4
|
Posté le: 10 Avr 2008 19:13 Sujet du message: intérruption par overflow du timer2 récalcitrant ? |
|
|
enfait le probleme c'est qu'a la fin de l'interruption du INT0
il revient a dans le while(1) entre les acolade
while (1)
{
};
}
puis il execute toutes les instruction après le main, les initialisation et moi je voudrais qu'il revienne dans la boucle while(1) pour exécuter la prochaine interruption du timmer2.
pourquoi il revient toujours juste après le main???
faut il absolument ecrire dans le main???? |
|
| Revenir en haut de page |
|
 |
|