Aller au contenu


Photo
- - - - -

Allumer une LED via un 12F683


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

#1 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 02 août 2008 - 07:14

Bonjour,
je fais appel à vous car je suis totalement désespéré.
Je souhaiterais allumer une led via la patte GP0 de ce PIC.
J'ai acheté un livre, mais il était completement pourri.
Il y avait presque rien.
Pouvez-vous me filer le code complet non compilé svp.

Je suppose qu'il faut faire un truc comme ca, mais ca marche pas:
#include <12F683.h>

void main() {
while(1){
output_high(PIN_GP0);
}
}[/code]

Quand je fais cela:

C:\PIC\sdcc\bin>sdcc.exe -mpic16 -p12F683 "test.c"

il me dit:

'12F683' was not found.
Valid devices are (use --verbose for more details):
p18f1220 p18f1320 p18f2220 p18f2221 p18f2320 p18f2321
p18f2331 p18f242 p18f2420 p18f2423 p18f2431 p18f2455
p18f248 p18f2480 p18f24j10 p18f252 p18f2520 p18f2523
p18f2525 p18f2550 p18f258 p18f2580 p18f2585 p18f25j10
p18f2620 p18f2680 p18f2682 p18f2685 p18f4220 p18f4221
p18f4320 p18f4321 p18f4331 p18f442 p18f4420 p18f4423
p18f4431 p18f4455 p18f448 p18f4480 p18f44j10 p18f452
p18f4520 p18f4523 p18f4525 p18f4550 p18f458 p18f4580
p18f4585 p18f45j10 p18f4620 p18f4680 p18f4682 p18f4685
p18f6520 p18f6585 p18f6620 p18f6680 p18f6720 p18f8520
p18f8585 p18f8620 p18f8680 p18f8720 p18f66j60 p18f66j65
p18f67j60 p18f86j60 p18f86j65 p18f87j60 p18f96j60 p18f96j65
p18f97j60

C:\PIC\sdcc\bin>

Merci de vos réponses.


#2 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 02 août 2008 - 10:46

Si vous pouvez aussi me dire que mettre dans TRIS[LE PORT].
Car j'ai trouvé mikroC pour compiler, mais si je mets TRISGP, ca marche pas.

Merci beaucoup

#3 Tixlegeek

Tixlegeek

    Membre occasionnel

  • Membres
  • Pip
  • 116 messages

Posté 03 août 2008 - 09:15

salut

pour configurer les ports en sortie, (dil8 = gpio ?) TRISIO = 0x00000000
(0 = sortie, 1= entrée)

pour commander une sortie, fai splustot GPIO.1 = 1; ou GPIO.1 = 0.

++

s

#4 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 03 août 2008 - 01:11

Tixlegeek -> Quand je mets:

void main (void){

sortie = 0;
PORTIO = 0; //LIGNE 6

while(1){

delay_ms(1000);
PORTIO = ~PORTIO; //LIGNE 10
}
//Notez que c'est un bete copier coller ^^, mais ca ne marche pas[/code]il me donne comme erreur:
[quote"mikroC"]
Undeclared identifier [PORTIO] in expression -> l6
Undeclared identifier [PORTIO] in expression -> l10
Undeclared identifier [PORTIO] in expression -> l10[/quote]

god_tachmou -> Oui, j'ai vu ton tuto, il est vraiment pas mal.
Pour mikroC, je l'ai téléchargé et je code avec. Ensuite, je compile, et j'envoie sur le PIC avec un programmateur et Winpic .
J'ai décidé d'abandonner sdcc étant trop compliqué. mikroC est plus facile d'utilisation.

Le problème, c'est que je ne sais pas comment s'appellent les sorties de ce pic (12F683)

Merci d'avance.

#5 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 03 août 2008 - 01:56

Bonjour,
sur le datasheet, les pins sont: GP0/GP1/GP2/GP3/GP4/GP5
et sur le registre, je vois: GPIO TRISIO 05h
Mais quand je mets :
void main (void){
sortie = 0;
PORTIO = 0;

while(1){
delay_ms(1000);
PORTIO = ~PORTIO;
}
}[/code]
Il me dit: "Undeclared identifier [PORTIO] in expression"
Par contre, quand je remplace #define sortie TRISIO par #define sortie TRISGPIO
il ajoute un nouveau message pour cette ligne.

Merci d'avance

#6 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 03 août 2008 - 04:18

Voici le screen:

null
Et voici le datasheet:

http://pdf1.alldatasheet.com/datasheet-pdf/view/197537/MICROCHIP/PIC12F683-E/MD.html

#7 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 03 août 2008 - 07:12

Merci beaucoup de ta réponse.
J'arrive bien à compiler et à mettre le programme sur le PIC.
Malheureusement, les LEDs ne s'allument pas.
Voici le schéma: Le 1 est le VDD et le 8 le VSS

Merci d'avance

#8 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 03 août 2008 - 09:05

Pour les led, c'est des petites 3mm, je ne pense pas qu'elles consomment beaucoup.
Pour la source de courant 5V, c'est un 7805 avec des condos 1u.
Quand je mets un multimètre sur une sortie et le -, j'ai 0V.
J'ai essayé un
void main (void)
{
sortie = 0;
GPIO = 0;
GPIO = ~GPIO;
}[/code]
Et j'ai 0V entre une sortie et la masse.

J'suis vraiment paumé ^^.

Merci


#9 Tixlegeek

Tixlegeek

    Membre occasionnel

  • Membres
  • Pip
  • 116 messages

Posté 04 août 2008 - 09:04

ton pic doit avoir crammé... une diode, sans résistance, est un banal court-circuit, tu as donc fait monté l'intensuité dans ton port de maniere sans-doutes désastreuses. change de pic et met une résistance ^^

et puis, 0 = 0, par conséquent, si tu met du 0 sur tes broches, pas de différence de pottentiel ! c'ets tout à fait normal !
essaye plustot :

void main(void)
{
TRISIO = 0b00000000;
GPIO = 1;
while(1)
{
clrwdt();
}
}
[/code]

++

#10 Tixlegeek

Tixlegeek

    Membre occasionnel

  • Membres
  • Pip
  • 116 messages

Posté 04 août 2008 - 11:01

ca réinitialise le watchdog s'il est activé. c'ets une sécurité au cas ou le pic bloque, il reset. là, ca l'enpeche de reseter, et donc de risquer un soucis.

#11 Tixlegeek

Tixlegeek

    Membre occasionnel

  • Membres
  • Pip
  • 116 messages

Posté 04 août 2008 - 12:52

certes, mais, ICprog ne prends pas en compte les options compilateur chez moi, chui obligé de tout reconfiguré à chaque chargement.... alors je fais gaffe :o

à propos de ca frank, t'as pas d'oscillateur sur ton pic, ni de configuration en interne, comment fais tu alors ?




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

0 members, 0 guests, 0 anonymous users