Attiny13 - Interruptions externes

Pour toutes vos questions sur WinAVR, AVR-GCC et la programmation en C en général

Modérateur: Modérateur

Attiny13 - Interruptions externes

Messagede Vincent le 19 Avr 2008 22:29

Bonsoir,

J'ai un problème d'interruptions externes. Je n'arrive pas à utiliser l'entrée INT0 pour détecter un front, et là je sèche vraiment, j'ai casi tout essayé.

Voilà le programme :

#define F_CPU 1000000UL

#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>

#define CAPTEUR PB0
#define SORTIE PB4

void init(void)
{
// config E/S

DDRB &= ~_BV(CAPTEUR);
DDRB |= _BV(SORTIE);

// config Int0

PCMSK = 0x01;
MCUCR = 0x02;
GIMSK = 0x40;
}

int main(void)
{
init();

sei();

while(1)
{

}

return 0;
}

SIGNAL(SIG_INTERRUPT0)
{
PORTB |= _BV(SORTIE);
}

C'est simple, je n'ai rien en sortie, alors que j'ai bien un front descendant sur INT0.
Merci
Vincent
 

Messagede BigJohn le 20 Avr 2008 9:22

Pour l'initialisation de l'interruption:

GIMSK = 0x40;
MCUCR = 0x02;
GIFR = 0x40;
Dernière édition par BigJohn le 20 Avr 2008 11:44, édité 1 fois.
BigJohn
PONCTUEL
PONCTUEL
 
Messages: 25
Inscription: 08 Jan 2006 10:32

Messagede Invité le 20 Avr 2008 9:29

Pourquoi mettre deux fois 40h dans GIMSK ? ou est-ce juste une bricole pour que ça marche ?
En tous cas je test dès que possible. :)
Invité
 

Messagede BigJohn le 20 Avr 2008 11:45

corrigé: GIFR au lieu de GIMSK
BigJohn
PONCTUEL
PONCTUEL
 
Messages: 25
Inscription: 08 Jan 2006 10:32

Messagede Vincent le 20 Avr 2008 12:49

Non, toujours rien :?
Vincent
 


Retourner vers WinAVR-AVR GCC

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités