Auteur | Message |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 07/08/2011 17:05 | | flowcode une solution ? |
salut a tous
je fais appel a vos connaissances car je n'y arrive vraiment pas
je voulais faire un programme simple ayant le fonctionnement suivant (voir la vidéo) cela fonctionne , j'ais utilisé flowcode. mais l'interruption sur rb0 n'a jamais fonctionné , quand elle est activée elle éteint bien la led qui est allumée , mais fige le programme plus aucune action n'est possible par la suite , inutile de vous dire que plusieurs personnes ont éssayés de trouvé une solution sans aucun succé je me suis rabattu sur une interruption du "pauvre" a savoir un reset des leds via des portes logiques (vidéo)
je me suis rappelé du forum ou quelques uns içi semblent de taille a peut être résoudre ce problème de RB0
question comment gerer une interruption (avec flowcode ou sans) pour avoir le programme que je veux ? (et me passé de ces portes logiques)
fonctionnement -->
chaque switch allume sa led un switch qui a été activé ne le pourra pas deux fois de suite (il faut que l'autre switch est été activé pour un deuxième cycle. si une des leds est allumée et si RB0 actif reset des leds et tempo 3 secondes apres les switchs seront de nouveaux opérationnels
merci
la vidéo Mon http://www.wideo.fr/video/iLyROoaf24J6.html
le fichier flowcode en question ou l'interruption fonctionne en simulation (pas comme voulu) mais lors de l'essaie sur isis et sur plaque d'éssaie l'interruption fait bien le reset mais fige le programme
le lien ci dessous du programme en vidéo avec son "bug" des que rb0 devient actif ,le programme se fige.
(attendre 10 secondes pour que la vidéo s'ouvre)
http://www.wideo.fr/video/iLyROoaf26zT.html
le fichier en question http://dl.free.fr/c3N1NKp54
|
Edité par max le 09/08/2011 00:11 |
|
|
Revenir en haut | Permalien | |
|
Technologuepro
Administrator
Messages : 447 Inscrit(e) le: 15/11/2007
|
Posté le 09/08/2011 01:38 | | RE : flowcode une solution ? |
Salut, Ajoute à la fin de la routine d'interruption l'instruction suivante : INTCON reçoit la valeur en hexa 0x90 et reviens ici si ça marche pas je vais t'aider à faire fonctionner ce programme j'ai pas pus ouvrir le fichier flowcode sous la version 4, quelle version utilise tu ? sinon ton programme est très simple en mikropascal je peux le faire rapidement Bonne chance
|
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres... |
|
|
Revenir en haut | Permalien | |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 09/08/2011 12:51 | | RE : flowcode une solution ? |
Technologuepro a écrit : sinon ton programme est très simple en mikropascal je peux le faire rapidement |
simple ?..(voila pourquoi je fais appel a toi !! ) tu vas sourire sans doute , ce problème a tenu 3 pages de poste dans un forum anglais sans trouvé de solution !
j'ais essayé intcon , sans résultat , peut importe la façon dont tu pourrais le faire fonctionné ,mais j'aimerais bien le voir tourné ce programme ensuite je prendrais le temps qu'il faut pour essayé de comprendre pourquoi flowcode n'arrive pas a gérer ce genre de fonctionnement
pour flowcode j'ais la version 4.3 si tu arrive a le faire avec ta version flowcode ,je pourrais l'ouvrir (l'inverse n'est sans doute pas possible...? version plus ancienne ?..) le lien de mon fichier flowcode
http://www.cijoint.fr/cjlink.php?file=cj201108/cijjiwGEvJ.zip
merci beaucoup
|
Edité par max le 09/08/2011 12:08 |
|
|
Revenir en haut | Permalien | |
Technologuepro
Administrator
Messages : 447 Inscrit(e) le: 15/11/2007
|
Posté le 10/08/2011 01:06 | | RE : flowcode une solution ? |
Ok, je vais t’écrire un programme sous Mikropascal 8 et une simulation sous ISIS 7 , tu pourras t'inspirer de l'algorithme pour l’écrire sous flowcode ou c ou tous que tu veux, Alors à très bientôt
|
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres... |
|
|
Revenir en haut | Permalien | |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 10/08/2011 12:09 | | RE : flowcode une solution ? |
génial ! j'attends ça avec impatience.
|
|
|
Revenir en haut | Permalien | |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 13/08/2011 12:32 | | RE : flowcode une solution ? |
...je crois que le "patron" m'a oublié..
|
|
|
Revenir en haut | Permalien | |
Technologuepro
Administrator
Messages : 447 Inscrit(e) le: 15/11/2007
|
Posté le 18/08/2011 08:57 1313650633.zip (19 Ko) | | RE : flowcode une solution ? |
Bonjour, Non je t'ai pas oublié, j'avais un empêchement. Bon voila ton code d'après le fonctionnement que tu as demandé, tu trouvera la simulation sous ISIS et le programme en mikropascal jette un coup d’œil et dis moi si il ya des conditions à ajouter. ??? voici un aperçu rapide du code :
Code :
var jeton: byte ; procedure interrupt; begin portb.6:=0; portb.7:=0; delay_ms(3000); INTCON:=$90; end; begin jeton:=0; trisa.0:=1; ///SW1 trisa.1:=1; /// SW2 trisb.0:=1; /// INT trisb.6:=0; /// LED1 portb.6:=0; trisb.7:=0; /// LED2 portb.7:=0; INTCON:=$90; while true do begin if ((porta.0 = 1) and ((jeton = 0) OR (jeton = 2))) then begin portb.6:=1; jeton:=1; end; if ((porta.1 = 1) and ((jeton = 0) OR (jeton = 1)))then begin portb.7:=1; jeton:=2; end; end; end.
|
à très bientôt
|
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres... |
|
|
Revenir en haut | Permalien | |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 18/08/2011 12:45 | | RE : flowcode une solution ? |
salut
d'abord merci.(je savais que tu devais être pris)
le fonctionnement recherché est un peux différent.
si une led est allumée (led1 ou led2) aucune action ne sera possible sur l'un ou l'autre switch ,il faut que la temporisation soit terminée et que la led qui est allumée soit éteinte pour donné la possibilitée a l'autre inter d'activé sa led
que ce soit sw1 ou sw2 en premier peux importe celui qui a commuté le premier active sa led .
exemple.(dans l'ordre)
sw1 activé --> led 1..tempo 20 secondes...extinction led1 sw2 activé --> led 2..tempo 20 secondes...extinction led2 sw2 activé ---> rien ne se passe. sw1 activé ---> led1..tempo 20 secondes...extinction led1. sw1 activé (de nouveau) -->rien ne se passe.
si INT (rb0) activé a n'importe quel moment , extinction de la led en service.(reset)
autrement dit , si un inter viens d'être activé , pour qu'il le soit une nouvelle fois il faut que l'autre inter est fait un cycle.
comme tu le vois simple comme fonctionnement ,mais cela ma tenu en échec ainsi que le forum ou nous en avons débattu.
merci
|
|
|
Revenir en haut | Permalien | |
Technologuepro
Administrator
Messages : 447 Inscrit(e) le: 15/11/2007
|
Posté le 19/08/2011 03:12 1313716334.zip (23 Ko) | | RE : flowcode une solution ? |
Bonjour, Je trouve ça très facile il suffit d'ajouter quelques lignes :
Code :
program LEDINT; var jeton, interuption: byte ; i: integer; procedure interrupt; begin interuption :=1; portb.6:=0; portb.7:=0; delay_ms(3000); INTCON:=$90; end; Procedure attente; begin for i:=0 to 20000 do begin delay_ms(1); if interuption = 1 then break; end; interuption :=0; end; begin jeton:=0; interuption:=0; trisa.0:=1; ///SW1 trisa.1:=1; /// SW2 trisb.0:=1; /// INT trisb.6:=0; /// LED1 portb.6:=0; trisb.7:=0; /// LED2 portb.7:=0; INTCON:=$90; while true do begin if ((porta.0 = 1) and ((jeton = 0) OR (jeton = 2))) then begin portb.6:=1; jeton:=1; attente; portb.6:=0; end; if ((porta.1 = 1) and ((jeton = 0) OR (jeton = 1)))then begin portb.7:=1; jeton:=2; attente; portb.7:=0; end; end; end.
|
si tu ne veux plus de l'attente de 3 secondes lorsqu’il y a une INT alors supprime la ligne delay_ms(3000); dans la procédure interrupt
@+
|
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres... |
|
|
Revenir en haut | Permalien | |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 19/08/2011 17:20 | | RE : flowcode une solution ? |
que dire....IMPEC !! voila pourquoi il y'a des éléves et le..MAITRE !
j'ais créer un projet avec le soft Micropascal et me suis amusé a changer les tempos ,histoire de comprendre le fonctionnement de ce soft et surtout la manière dont tu t'y est pris pour faire cela.
Micropascal est assez déroutant quand on ne le connait pas , mais grace au tuto du site , je vais essayé de "joué" avec ce soft histoire de maitrisé un peux mieux .
meci beaucoup.
je compléte mon post apres quelques manipulations sur ce programme exemple je veux allumer une led qui se trouve sur le portB5 , au moment ou interviens RB0 (l'interruption) et elle s'éteind apres 6 secondes.
j'écrit la chose suivante ?
procedure interrupt; begin interuption :=1; portb.6:=0; portb.7:=0; portb.5:=1; // allume la led de défaut delay_ms(6000); portb.5:=0; //éteind la led de défaut INTCON:=$90; end;
pourtant cela ne fonctionne pas ?
|
Edité par max le 19/08/2011 18:56 |
|
|
Revenir en haut | Permalien | |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 20/08/2011 12:49 | | RE : flowcode une solution ? |
ou est je la tête ? apres "cojitation" (désolé je ne connais pas du tout la programmation en micropascal (mais ca commence a me parlé...)
alors si je veux allumée une led sur le portB5 ,lorsque l'interruption est la..et que celle ci s'éteigne au bout de 6 secondes... voila ce qu'il faut faire comme modification.
mes commentaires sont bons ? (dans le programme)
autres chose , si je veux paramétrer des résistances en pull down sur les ports non utilisés ? quels sont les lignes de programme ?
et enfin..(désolé) comment tu fait pour programmer le microcontroleur avec micropascal ? le soft a la possibilité de le faire , j'ais un pickit2 , mais le logiciel ne semble pas le detecter ? j'ais aussi un programateur JDM (rs232)..
merci
Citation : program LEDINT; var jeton, interuption: byte ; i: integer; procedure interrupt; begin interuption :=1; portb.6:=0; /// SI INTERRUPTION RESET LED 1 portb.7:=0; /// SI INTERRUPTION RESET LED 2 portb.5:=1; /// SI INTERRUPTION ON ALLUME LA LED DEFAUT delay_ms(6000); /// APRES 6 SECONDES portb.5:=0; /// ON RESET LA LED DEFAUT INTCON:=$90; end; Procedure attente; begin for i:=0 to 20000 do begin delay_ms(1); if interuption = 1 then break; end; interuption :=0; end; begin jeton:=0; interuption:=0; trisa.0:=1; ///SW1 EN ENTREE trisa.1:=1; /// SW2 EN ENTREE trisb.0:=1; /// INT EN ENTREE trisb.6:=0; /// LED1 EN SORTIE portb.6:=0; /// RESET LED1 trisb.7:=0; /// LED2 EN SORTIE portb.7:=0; /// RESET LED2 trisb.5:=0; /// PORTB.5 EN SORTIE portb.5:=0; /// LED DEFAUT RESET INTCON:=$90; while true do begin if ((porta.0 = 1) and ((jeton = 0) OR (jeton = 2))) then begin portb.6:=1; jeton:=1; attente; portb.6:=0; end; if ((porta.1 = 1) and ((jeton = 0) OR (jeton = 1)))then begin portb.7:=1; jeton:=2; attente; portb.7:=0; end; end; end. |
|
Edité par max le 20/08/2011 14:26 |
|
|
Revenir en haut | Permalien | |
Technologuepro
Administrator
Messages : 447 Inscrit(e) le: 15/11/2007
|
|
Revenir en haut | Permalien | |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 19/09/2011 15:23 | | RE : flowcode une solution ? |
merci , mais c'est grace a toi que j'ais aussi évolué..(un peux)
|
|
|
Revenir en haut | Permalien | |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 24/10/2011 18:42 | | RE : flowcode une solution ? |
la maquette fonctionne je suis entrain de faire le circuit imprimé les premiers essaies semblent concluants , a un détail pres... des que le volet (alors qu'il est en bas commence a monté , il s'arréte ?... mais cela ne mle fait pas a tout les coups...? parfois tout fonctionne correctement , c'est a dire un appuie sur le BP descente le volet descend et s'arréte une seconde apres que le contact en bas est activé , (cela permet de fermer les lames de volet "ajourées" ) un appuie sur BP montée ,le volet monte et idem s'arréte des que le capteur haut est détecté. a cela j'ais ajouté pour plus de sécurité un temps de fonctionnement montée et descente c'est a dire que le moteur ne fonctionnera pas plus de 23 secondes , si un capteur est vu avant il y'aura arrêt si par "accident" aucun capteurs n'est détecté il y'aura arr^ét quand même grace au temps de fonctionnement maximum. mais ce soucis quand le volet est en bas et qu'il est commandé pour le haut m'ennuie de temps en temps des que le capteur bas n'est plus activé , la commande haut (levée se coupe).... je ne vois pas ou ça "cloche"..désolé mais j'en appel a ton savoir si cela t'est possible merci d'avance
program LEDINT; var jeton, interuption: byte ; i: integer; procedure interrupt; begin interuption :=1; portb.7:=0; /// SI FCourse haut stop montée portb.5:=1; /// SI FCourse (s) ON ALLUME LA LED rouge (arrêt volet) delay_ms(1000); /// 1 SECONDE (ferme les lames ajourées en FC bas) portb.5:=0; /// ON RESET LA LED rouge (arrêt volet) portb.6:=0; /// SI FCourse stop descente apres 1 seconde (retard) INTCON:=$90; end; Procedure attente; begin for i:=0 to 20000 do begin delay_ms(1); if interuption = 1 then break; end; interuption :=0; end; begin jeton:=0; interuption:=0; trisa.0:=1; /// A0 EN ENTREE trisa.1:=1; /// A1 EN ENTREE trisb.0:=1; /// INT BO EN ENTREE trisb.6:=0; /// B6 EN SORTIE portb.6:=0; /// RESET position basse trisb.7:=0; /// B7 en SORTIE portb.7:=0; /// RESET position haute trisb.5:=0; /// PORTB.5 EN SORTIE portb.5:=0; /// LED rouge RESET INTCON:=$90; while true do begin if ((porta.0 = 1) and ((jeton = 0) OR (jeton = 2))) then begin portb.6:=1; jeton:=1; delay_ms(23000); /// temps de fonctionnement montée portb.6:=0; /// arrêt descente du volet end; if ((porta.1 = 1) and ((jeton = 0) OR (jeton = 1)))then begin portb.7:=1; jeton:=2; delay_ms(23000); /// temps de fonctionnement decente portb.7:=0; /// arrêt montée du volet end; end; end.
Le schéma (en partie pour se repérer)
Uploaded with ImageShack.us
|
Edité par max le 24/10/2011 19:12 |
|
|
Revenir en haut | Permalien | |
max
Junior Member
Messages : 27 Inscrit(e) le: 24/04/2008
|
Posté le 26/10/2011 14:22 | | RE : flowcode une solution ? |
presque 800 lectures et pas un seul qui ne puisse répondre a la question ou est le "bug" de ce programme ?.... ok ,........ attendons le patron s'il repasse par la .
|
|
|
Revenir en haut | Permalien | |
cccc
Newbie
Messages : 2 Inscrit(e) le: 22/03/2016
|
Posté le 22/03/2016 11:29 | | RE : flowcode une solution ? |
max a écrit : ou est je la tête ? apres "cojitation" (désolé je ne connais pas du tout la programmation en micropascal (mais ca commence a me parlé...)
alors si je veux allumée une led sur le portB5 ,lorsque l'interruption est la..et que celle ci s'éteigne au bout de 6 secondes... voila ce qu'il faut faire comme modification.
mes commentaires sont bons ? (dans le programme)
autres chose , si je veux paramétrer des résistances en pull down sur les ports non utilisés ? quels sont les lignes de programme ?
et enfin..(désolé) comment tu fait pour programmer le microcontroleur avec micropascal ? le soft a la possibilité de le faire , j'ais un pickit2 , mais le logiciel ne semble pas le detecter ? j'ais aussi un programateur JDM (rs232)..
merci
-----------------------------------------------------------------------------------------------
Alors, tout d'abord j'aimerai monter une pétition ainsi qu'une levée de fonds pour pouvoir offrir à ce jeune individu défavorisé une éducation valable, et des cours de français, j'ai pris la liberté de corriger ce commentaire comme suit :
"Où ai-je la tête ? Après "cogitation" (désolé, je ne connais pas du tout la programmation en microPascal (mais ça commence à me parler...))
Alors si je veux allumer une LED sur le port B5 ,lorsque l'interruption est là, et qu'elle s'éteigne au bout de 6 secondes... Voilà ce qu'il faut modifier.
Mes commentaires sont-ils bons ? (dans le programme)
Autre chose: si je souhaite paramétrer des résistances en pull down sur les ports non-utilisés ? Quelles sont les lignes de programme ?
Et enfin..(désolé) comment fais-tu pour programmer le microcontrôleur avec micropascal ? Le soft a la possibilité de le faire, j'ai un pickit2, mais le logiciel ne semble pas le détecter... J'ai aussi un programmateur JDM (rs232)..
Merci"
|
|
|
|
Revenir en haut | Permalien | |
cccc
Newbie
Messages : 2 Inscrit(e) le: 22/03/2016
|
Posté le 22/03/2016 11:29 | | RE : flowcode une solution ? |
max a écrit : ou est je la tête ? apres "cojitation" (désolé je ne connais pas du tout la programmation en micropascal (mais ca commence a me parlé...)
alors si je veux allumée une led sur le portB5 ,lorsque l'interruption est la..et que celle ci s'éteigne au bout de 6 secondes... voila ce qu'il faut faire comme modification.
mes commentaires sont bons ? (dans le programme)
autres chose , si je veux paramétrer des résistances en pull down sur les ports non utilisés ? quels sont les lignes de programme ?
et enfin..(désolé) comment tu fait pour programmer le microcontroleur avec micropascal ? le soft a la possibilité de le faire , j'ais un pickit2 , mais le logiciel ne semble pas le detecter ? j'ais aussi un programateur JDM (rs232)..
merci
-----------------------------------------------------------------------------------------------
Alors, tout d'abord j'aimerai monter une pétition ainsi qu'une levée de fonds pour pouvoir offrir à ce jeune individu défavorisé une éducation valable, et des cours de français, j'ai pris la liberté de corriger ce commentaire comme suit :
"Où ai-je la tête ? Après "cogitation" (désolé, je ne connais pas du tout la programmation en microPascal (mais ça commence à me parler...))
Alors si je veux allumer une LED sur le port B5 ,lorsque l'interruption est là, et qu'elle s'éteigne au bout de 6 secondes... Voilà ce qu'il faut modifier.
Mes commentaires sont-ils bons ? (dans le programme)
Autre chose: si je souhaite paramétrer des résistances en pull down sur les ports non-utilisés ? Quelles sont les lignes de programme ?
Et enfin..(désolé) comment fais-tu pour programmer le microcontrôleur avec micropascal ? Le soft a la possibilité de le faire, j'ai un pickit2, mais le logiciel ne semble pas le détecter... J'ai aussi un programmateur JDM (rs232)..
Merci"
|
|
|
|
Revenir en haut | Permalien | |
Claudine75
Member
Messages : 238 Inscrit(e) le: 26/11/2015
|
Posté le 02/11/2016 16:07 | | RE : flowcode une solution ? |
Je félicite beaucoup toutes les personnes qui veille au bon déroulement de ce FORUM purement sensationnel et intéressant.
voyance gratuite par email
|
|
|
Revenir en haut | Permalien | |
|