Bienvenu(e)! Identification Créer un nouveau profil

Recherche avancée

l'USB et les interruptions sur un 18F4550

Envoyé par Xav88 
l'USB et les interruptions sur un 18F4550
dimanche 28 mai 2006 09:18:37
Bonjour,
Dans un post précédent, je vous avais fait part de mon problème quand à l'utilisation des interruption avec l'usb et le driver microchip. Comme vous me l'avez conseillé, je me suis finalement tourné vers le standard HID (avec l'exemple de votre site) et j'utilise Delphi à défaut de ne pas trouver de solution pour Visual C# 2005.
Tout fonctionne parfaitement, mais dès que j'essaye de mettre des interruptions, plus rien ne fonctionne, le pic n'est plus reconnu par le pc. J'ai essayer en créant moi même tout le code pour les interruption et aussi en utilisant les fichiers "interrupt.c" et "interrupt.h" fournis avec le drivers.

Merci d'avance pour votre aide

Xav

Re: l'USB et les interruptions sur un 18F4550
dimanche 28 mai 2006 17:44:36
Salut,

C'est un peu difficile de dire pourquoi ça ne marche sans savoir ce que tu as fait, ce que je peux t'apporter c'est un exemple d'application créé par Yts sur le forum de microchip qui utilise les interruptions son projet normallement fonctionne, il est critiqué à cette adresse:

[forum.microchip.com]#

(tu y trouveras aussi le code)

Benjamin
Re: l'USB et les interruptions sur un 18F4550
lundi 29 mai 2006 15:30:46
Salut,
En fait, je veux utiliser des interruptions en provenance du PORTB (RBChange bits 4:7). Quand je mets RBIP=0 (priorité basse) la communication usb fonctionne mais pas les interruptions. Par contre, quand je met RBIP=1 (priorité haute) ni l'usb ni les interruptions ne fonctionnent.
Dans tous les cas GIE/GIEH=1, GIEL/PIEI=1 et IPEN=1

Xav
Re: l'USB et les interruptions sur un 18F4550
mardi 25 juillet 2006 09:14:44
As tu résolu ton problème

j'ai également le problème ds interrupts RB4-RB7 ?

Minikiss
Re: l'USB et les interruptions sur un 18F4550
mercredi 13 décembre 2006 13:23:48
Bonjour a tous,

Voici la résolution pour le probleme des interruptions mais avec les interruptions du timer, a vous de l'adapter winking smiley

[www.roboticus.org]

voilà de quoi peut-être faire votre bonheur

Benjamin

.: [www.roboticus.org] :. Control your own world!
Re: l'USB et les interruptions sur un 18F4550
mardi 13 mars 2007 16:57:19
Bonjour à tous,

J'ai un projet en route ou j'utilise l'application de microchip USB avec le protocole HID pour le 18F4550. Cependant je me trouve aussi confronté à un problème et le seul moyen de le résoudre c'est les interruptions externe.

Donc ma question est simple, quel est la fréquence maximal admissible? Ma fréquence de travail pour les interruptions est de 10KHz. Pensez-vous que ca va passer ou il va y avoir des problème de déconnection du périférique USB (le 18F4550)?

Merci pour vos lumière

A+
Xavier

PS: Vous aller me dire de tester, mais malheureusement je n'ai pas de générateur sous la main... Donc j'attends vos remarque et suggestions avec impatience! Merci
Re: l'USB et les interruptions sur un 18F4550
mercredi 14 mars 2007 16:35:13
Salut,

10khz, signifie que tu vas lever ton interruption toutes les 100µs, si le traitement de l'interruption est court (quelque µs), il n'y a pas de raison que ça déconnecte l'usb...


A+

Benjamin
Re: l'USB et les interruptions sur un 18F4550
mercredi 14 mars 2007 17:49:13
Hello,


Ok pour ces précisions, je pense que j'arriverai à limiter le code dans l'interruption et ne pas dépasser les 20us. Enfin encore a voir vu que c'est codé en C. Peut-etre que l'assembleur serai une piste a voir.

Je vous tiendrai au courant des résultats, si cela vous intéresse.

A+
Xavier
Re: l'USB et les interruptions sur un 18F4550
jeudi 15 mars 2007 10:45:54
Bonjour

Alors les interruption sur INTO fonctionnent. Voici le code pour les activer correctement (ca peut toujours servir à quelqu'un).

----------------------------------------------------------------------
OpenRB0INT(PORTB_CHANGE_INT_ON & FALLING_EDGE_INT & PORTB_PULLUPS_ON);
INTCONbits.INT0IF = 0;
INTCONbits.PEIE = 1;
INTCONbits.GIE = 1;
----------------------------------------------------------------------


Cependant je rencontre un nouveau problème, je rentre avec une horloge de 2kHz et j'en ressort avec une de 1kHz, j'ai essayé avec une autre férquence (4Khz et la meme chose, je ressort avec 2 foi moins, donc 2kHz)


Voici le code que j'ai en interruption:

----------------------------------------
#pragma interruptlow my_lisr
void my_lisr(void)
{
if (INTCONbits.INT0IF == 1)
{
PORTBbits.RB7 ^= 1;
INTCONbits.INT0IF = 0;
}
}
----------------------------------------

Avez-vous une idée d'ou cela peut venir?

Merci pour votre aide

A+
Xavier
Re: l'USB et les interruptions sur un 18F4550
jeudi 15 mars 2007 15:53:36
Salut,

Oui c'est tres simple d'ou ça vient

PORTB_CHANGE_INT_ON & FALLING_EDGE_INT

L'interruption est déclenchée sur le front descendant... donc a chaque fois que ton signal d'entrée marque un front descendant, tu change ta sortie, soit ta sortie à une période double de l'entrée.... 2khz/2 = 1khz...

Je pense que si tu retire FALLING_EDGE_INT ça devrait fonctionner comme tu le désires, sinon, tu dois avoir un autre parametre mais je sais pas c'est lequel

Bonne continuation

Benjamin
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter