Aller au contenu


Photo
- - - - -

Simulation d'un programme asm


  • Veuillez vous connecter pour répondre
31 réponses à ce sujet

#21 Francky

Francky

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 967 messages
  • Gender:Male

Posté 21 juillet 2011 - 08:59

Ah c'est donc un problème électronique et non de programmation ! '^^ (ça sert de mettre des vidéos '^^)
Non il n'est pas relié à la masse :/ Donc il faut que je le relie à la masse à travers une résistance de 10k et que je le relie quand même à ma source d'interruption ? Ou alors je dois bricoler un truc avec des portes logiques ?


Il faut que je fasse comme ici (mais en mettant mon phototransistor au lieu du bouton poussoir ?) :
http://fabrice.sincere.pagesperso-orange.fr/cm_electronique/projet_pic/diapason6/diapason6.htm
ou plutôt comme ici :
http://fabrice.sincere.pagesperso-orange.fr/cm_electronique/projet_pic/de_sonore/de_sonore.htm


(excuse moi mes questions ne sont plus trop en accord avec le sujet et ne sont pas vraiment dans la bonne partie du forum :x)

En tous cas un grand merci à toi qui m'aiguille vers la lumière ! x'D

#22 Maïck

Maïck

    Membre passionné

  • Membres
  • PipPipPip
  • 390 messages
  • Gender:Male
  • Location:Suisse

Posté 21 juillet 2011 - 09:57

Pour tester met juste une résistance entre RB0 et le "+" et un interrupteur entre RB0 et la masse.

Comme ça tu fais des transitions sur RB0...

Pour ta question un schéma du montage actuel et ce que tu veut faire exactement aiderais ! :)

#23 Francky

Francky

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 967 messages
  • Gender:Male

Posté 21 juillet 2011 - 11:41

Euh ok ^^ j'ai déjà posté mon câblage vu que j'avais des problèmes ^^
http://www.robot-maker.com/forum/topic/5384-probleme-probable-sur-mon-cablage/
D'ailleurs j'en ai encore "--
Par rapport au schéma que j'ai posté ici j'ai modifié des choses :
- j'ai mis une alim de 3 v pour alimenter le pic (j'ai connecté les masses de la pile de 9 V avec celles des piles de 1.5v comme me l'a conseillé un membre du forum)
- j'ai décidé de câbler directement les LED jaunes et les LEC IR aux sorties du micro controlleur (pour éviter de pomper le courant de la pile de 9V). Par contre je me suis rendu compte qu'il faudra que je refasse mon système avec le transistor en commutation pour la DEL IR qui est câblé à RB4 (j'ai lu qu'elle ne délivrait pas beaucoup de courant)
- j'ai fait sauter les résistances de 2k pour mettre les 4 pins d'alimentation des L293D à 9V.

Par contre je pense que je souffre de courts-circuits : quand je mets le pic et que j'allume mon système, rien ne se passe, même pas l'allumage des DEL jaunes (le pic et les dels jaunes ne sont pas grillés je les ai testés). :x Donc je pense que j'ai un court-circuit par rapport à MCLR', à VDD ou à VSS... Enfin bon j'avoue que ça me contrarie beaucoup... :(



Si j'ai bien compris tu me conseilles donc de câbler RB0 de cette manière ?

Fichier(s) joint(s)



#24 Maïck

Maïck

    Membre passionné

  • Membres
  • PipPipPip
  • 390 messages
  • Gender:Male
  • Location:Suisse

Posté 21 juillet 2011 - 01:48

Remplace ton photo transistor par un interrupteur pour tester, faire fonctionner une chose après l'autre !

#25 Francky

Francky

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 967 messages
  • Gender:Male

Posté 21 juillet 2011 - 02:02

Ok je test ça tout à l'heure sinon le montage que j'ai fait avec paint est bien celui que tu me conseilles ? (hormis le photo transistor ^^)

#26 Maïck

Maïck

    Membre passionné

  • Membres
  • PipPipPip
  • 390 messages
  • Gender:Male
  • Location:Suisse

Posté 21 juillet 2011 - 02:51

Si tu remplace le photo par un interrupteur, oui c'est ce que j'essayais de t'expliquer ! ;)

#27 Francky

Francky

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 967 messages
  • Gender:Male

Posté 21 juillet 2011 - 05:23

Ok je viens de modifier ma platine de test par rapport à ce que tu m'a dit et ça ne fonctionne toujours pas :x

#28 Maïck

Maïck

    Membre passionné

  • Membres
  • PipPipPip
  • 390 messages
  • Gender:Male
  • Location:Suisse

Posté 21 juillet 2011 - 06:00

Mais le micro contrôleur lui il tourne ? Tes LEDs s'allument ?

#29 Francky

Francky

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 967 messages
  • Gender:Male

Posté 21 juillet 2011 - 06:27

Oui mes leds continuent à s'allumer quand j'appuie sur mon interrupteur mais je pense qu'il est mal soudé.
J'ai essayé de mettre directement un fil câblé au + de la pile sur RB0 et là les leds se sont éteintes (plus aucune activité du pic tant que le fil était sur RB0, comme s'il y avait un court-circuit). Si c'est ce que tu sembles penser l'interruption a bien lieu mais le sous programme censé se déclencher ne se déclenche pas. De plus, lorsque je retire le fil de RB0, le programme revient à son point de départ. Il y a donc un reset du pic. Le bit censé faire un flag pour faire revenir le programme là où il s'était arrêté ne marche donc pas non plus.

#30 Maïck

Maïck

    Membre passionné

  • Membres
  • PipPipPip
  • 390 messages
  • Gender:Male
  • Location:Suisse

Posté 21 juillet 2011 - 07:14

Étonnant, tu es certain de ne pas faire réellement un court-circuit ?

Au pire modifie le programme d'interruption pour qu'il fasse quelque chose de vraiment simple mais visible. Genre allumer une led et éteindre toutes les autres pendant 1 seconde.

#31 Francky

Francky

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 967 messages
  • Gender:Male

Posté 22 juillet 2011 - 07:59

Ben vu que ma platine de test est uniquement constituée de LED c'est déjà ce qu'il fait ^^ Et nop je suis certain de rien "^^ Je peux prendre la photo si tu veux pour que tu vois mes changements de câblage. Et ce qui peut peut être poser problème est que ma résistance ne fait pas 10kohm, elle en fait 9.xxx (ça doit être les 5/10%).

#32 Francky

Francky

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 967 messages
  • Gender:Male

Posté 28 décembre 2011 - 09:02

Bonjour à tous !
Désolé de déterré cet ancien post mais j'ai enfin trouvé le problème ! :)

Aujourd'hui je me suis un peu replongé dans mon programme et je me suis demandé ce qu'était l'OPTIONVAL (ce qui permet de définir la valeur du registre option). Je me suis demandé pourquoi j'avais mis la valeur 93 en hexadécimal et ce que cela signifiait. J'ai donc ressorti le bon vieux cours de Bigonoff et j'ai trouvé la correspondance avec les différents bits.
Tout d'abord, pour mieux comprendre, quelques conversions s'imposent :
93(h)= 147(d) = 10010011(B)
On a donc :
b7 = 1, donc désactivation des résistances de rappel du port B
b6=0, interruption de rb0 sur front descendant (alors que je le voulais sur front montant, premier problème)
b5=0, timer0 en interne
b4=1, utilisation du "TOSE" (normalement, si j'ai bien compris, ça ne s'utilise que lorsque l'on a une horloge externe)
b3=0, pré diviseur sur le timer0
Les 3 bits suivants permettent de définir la valeur du pré diviseur (je ne les utilise absolument pas, il devrait donc tous être à 0 ce qui n'est pas le cas)
b2=0
b1=1
b0=1

Ainsi, j'ai pu trouver la valeur que je souhaitais pour mon application :
11001000
résistances de rappel off, interruption rb0 sur front montant, horloge interne (timer0), TOSE off, pré diviseur sur le watchdog et les 3 bits à 0 (car on ne veut pas de pré diviseur)
Ainsi, on a donc une valeur du registre option de C8 (h) = 200 (d) et non de 93 (h) ! (je ne sais pas trop où j'ai trouvé cette valeur d'ailleurs <_< ).

Après tests, j'ai enfin des interruptions sur RB0 ! :D

Merci à tous ceux qui m'avaient aidé ! ;)
(au moins maintenant je sais qu'il faut faire attention à tout :blush: )




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users