Hello, c'est juste mais peut etre pas suffisant...
c'est quel PIC ?
tu as vérifié les bits de config ?
tu as une broche MCLR ? selon la config en général il faut la tirer au +5V
A+,
Bruno
Et en français ?? lolc'est quel PIC ?
tu as vérifié les bits de config ?
tu as une broche MCLR ? selon la config en général il faut la tirer au +5V
C'est un 16f628
sur le 16F628 il ya une broche MCLR
Je dois rlier cette broche au 5v ????
pour les bits de config je ne sais pas ce qu'il faut faire...
merci pour ton aide !!
relie la broche MCRL au +5V
pour corriger les bits de config :
dans mikroBasic : Project->Edit Project->configuration flags
clique sur "Clear all" puis "Default"
dans la liste des Device Flags décoche HS_OSC puis coche INTRC_OSC_NOCLKOUT
recompile & flash ton pic
A+,
Bruno
Là est la solution !!!relie la broche MCRL au +5V
Merci, je suis hyper content que ça marche enfin !!!!!
@+++++
oui bon c'était trop beau !
Le programme "clignottant" qui tourne en boucle fonctionne bien, par contre ce programme ne fonctionne pas :
On dirait qu'il ne prend pas en compte l'entrée A.1 ??? Pour tester, j'ai relié l'entrée au +5V, j'ai aussi mis une résistance vers la masse pour l'état 0 de reposprogram vinc
main:
CMCON = 7
TRISB.1 = 0 'PORT B.0 en sortie
TRISA.1 = 1 'Port A.1 en entrée
PORTB.1 = 0
debut:
If PORTA.1 = 0 then goto debut
end if
PORTB.1 = 1
delay_ms(1000)
PORTB.1 = 0
delay_ms(3000)
goto debut
end.
Dernière modification par LTHOMAS ; 01/09/2006 à 10h44.
Hello,
vérifie à nouveau les bits de config
d'autre part, les bits sont numérotés à partir de 0, la sortie activée (RB1) est peut être pas celle sur laquelle ta LED est branchée (RB0 ?)
PORTB.1 c'est RB1 et non pas RB0
idem pour TRIS
A+,
Bruno
ok, merci, ça marche maintenant...
Mais sais-tu où je peux trouver des infos (en français si possible) sur mikrobasic pour utiliser le CAN, commander des afficheurs et tout ??? Je pense qu'il ya des codes tout faits
@+
Il y a plein de librairies dans mikroBasic, y compris CAN, LCD et GLCD, avec des exemples prêts à utiliser et la documentation associée.
les forums de mikroElektronika (en anglais) sont des mines d'info, aussi bien sur leurs compilateurs que sur les pic en général :
http://www.mikroe.com/forum/
je ne connais pas de ressource centralisée sur les pic en français, il faut essayer les forums par-ci par-la, sans oublier usenet :
fr.sci.electronique
A+,
Bruno
ok merci je vais voir !
De toute manière si j'ai un problème, je reviens...
@++++
Bonjour,
Je remonte ce topic afin de ne pas encombrer le forum.
Dans le cadre de mes PPE j'ai un petit programme à réaliser pour un PIC16F628, et j'ai un petit problème avec le compilateur MikroBasic.
Du moins, j'ai une opération à réaliser et je ne sais pas vraiment comment faire.
Je m'explique, je pense que c'est plutôt simple :
Je dois gérer un four désinfecteur à micro ondes et mon problème est qu'au moment voulu, la rampe à micro ondes qu'on remplace par une simple lampe doit être active pendant une durée de 20 secondes.
Quelles sont les codes pour réaliser une temporisation sous MikroBasic?
J'ai pas mal cherché sur le net et j'ai vraiment rien trouvé.
Sinon, il y a peut être d'autres lignes de codes possible. Peut être pas une temporisation mais en quelques sortes un code qui permettrait d'effectuer une action pendant une durée voulue?
Voilà, je suis un peu bloqué.
Merci pour vos renseignements.
http://www.mikroe.com/en/
Tu télécharges la doc du compilateur où toutes les instructions sont expliquées.
oui d'accord...
Mais il faut avoir une bonne maîtrise de l'anglais pour trouver ce que l'on cherche dans une telle notice.
J'avais également cherché dans l'aide prévu dans le logiciel MikroBasic mais tout est en anglais. Je n'ai pas trouvé ce que je voulais en tapant des mots de recherches comme : time, second, wait, temporisation...
Ne pouvez vous m'expliquez brèvement une solution?
Je vous met le code que j'ai déjà réalisé pour expliquer davantages si vous le désirez.
Avec les µC tu as 2 solutions :
1_ tu te mets à l'anglais
2_ tu laisses tomber
Je vois que vous êtes très coopératif avec les débutants...
Even if my english is not to bad, I didn't found what i was looking for, so maybe my level "de terminale" is not enough.
I'm sorry for disturbing you.
Je met quand même mes lignes de codes pour savoir si quelqu'un aurait pu m'aider.
Code:' Programme pour gestion du four à micro ondes : PPE ' Port A0 = dcy ' Port A1 = capteur 1 (présence document) ' Port A2 = capteur 2 (position 2) ' Port A3 = capteur 3 (position 3) ' Port A4 = capteur 4 (position 4) ' Port A5 = capteur 5 (etat porte) ' 1 sortie = inversion sens moteur ' 1 sortie = ouverture de la porte ' 1 sortie = fermeture de la porte ' 1 sortie = rampe à micro ondes ' Le programme va consister à lire l'ensemble du PortA, cad l'ensemble des données d'entrées. ' En fonction de ce qu'il lit il va attribuer différentes variables en sories (PortB) program Prog_PPE SYMBOL PortA = etat DIM etat as byte DIM allumé as byte sub procedure Moteur end sub sub procedure Lampe allumé = 1 ' temporisation ? allumé = 0 end sub main : ' début programme principal TRISA = %11111111 'Tout le PortA est en entrée select case etat case %00010011 ' dcy actionné + document en entrée + porte ouverte Moteur ' on lance le sous prog 1 kan le case est identique au mot binaire case %00001000 ' porte fermé + document sous la lampe Lampe end select end. 'fin programme principal
Le programme principal renvoi à 2 sous programme. Un qui s'appelle moteur et qui va me permettre de gérer dans un futur proche le moteur tapis pour amener les docs sous la rampe à micros ondes ( la lampe) et l'autre qui va me permettre de gérer le fonctionnement de la lampe.
C'est au début du fonctionnement de la lampe que j'aurai besoin d'une sorte de temporisation.
J'aurai tout de même éssayé de demander de l'aide...
Merci encore.
Delays Library
mikroBasic provides a basic utility routines for creating software delay. You can create more advanced and flexible versions based on this library.
Note: Routines do not provide an entirely accurate delay as it depends on clock specified in Project settings.
Delay_us
Delay_ms
Vdelay_ms
Delay_Cyc
Delay_us
Prototype sub procedure Delay_us(const time_in_us as word)
Returns Nothing.
Description Creates a software delay in duration of time_in_us microseconds (a constant). Range of applicable constants depends on the oscillator frequency.
This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit.
Requires Nothing.
Example Delay_us(10) ' Ten microseconds pause
Delay_ms
Prototype sub procedure Delay_ms(const time_in_ms as word)
Returns Nothing.
Description Creates a software delay in duration of time_in_ms milliseconds (a constant). Range of applicable constants depends on the oscillator frequency.
This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit.
Requires Nothing.
Example Delay_ms(1000) ' One second pause
Vdelay_ms
Prototype sub procedure Vdelay_ms(dim time_in_ms as word)
Returns Nothing.
Description Creates a software delay in duration of time_in_ms milliseconds (a variable). Generated delay is not as precise as the delay created by Delay_ms.
Requires Nothing.
Example pause = 1000
' ...
Vdelay_ms(pause) ' ~ one second pause
Delay_Cyc
Prototype sub procedure Delay_Cyc(dim cycles_div_by_10 as byte)
Returns Nothing.
Description Creates a delay based on MCU clock. Delay lasts for 10 times the input parameter in MCU cycles.
Requires Nothing.
Example Delay_Cyc(10) ' Hundred MCU cycles pause
Ci-dessus, l'aide de MikroBasic Compiler for PIC
Tu fais le tri et tu as ta tempo ou dois-je te l'écrire ?
Merci bien Gérard.
Voilà ma temporisation :
En vous remerciant sincèrement car je ne trouvais vraiment pas ce "delay".Code:sub procedure Lampe allumé = 1 Delay_ms (20000) allumé = 0 end sub