Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Programmer un pic



  1. #1
    blacksword

    Programmer un pic

    Bonjour à tous! J'avais fais un sujet ya pas longtemps dans "bien débuter" pour en apprendre assez sur le midi pour pouvoir faire mes propres trucs. Maintenant que c'est ok (enfin je pense), je me suis commandé un programmateur de PIC en USB (sur ebay, boutique virtualvillage), c'est un DIY K149-BC. Bref, je me débrouille pour trouver les drivers et le software sur internet puis je lance le soft, je configure le port et hop, il reconnait mon programmateur et le pic que je lui met dedans (un 16F88). Jusque là ça va. J'ai donc fait un truc à la con sur flowcode (activer RB0) pour tester si ça marche bien avant de me lancer dans un programme midi . Je le charge dans le programme et quand je veux l'envoyer dans la puce, ben y me renvoie un message d'erreur après l'opération. Pourtant quand je fais une lecture de la puce, ça à l'air ok mais quand je le test avec une alim et un voltmètre ben ya rien (si 2v, mais c'est pareil de partout). Je pense qu'il faudrait régler les fuses mais je sais pas trop comment faire... quelqu'un pour m'aider? Au fait le soft c'est microPro. Merci d'avance!

    -----


  2. Publicité
  3. #2
    blacksword

    Re : Programmer un pic

    edit:je viens d'autre forum et j'ai oublié de modifier la première ligne lors du copié collé.

  4. #3
    Linternautedu94

    Re : Programmer un pic

    Pour tes "fuse", j'sais pas trop si ça peut t'aider, mais tu devrais programmer sous MPLAB, ça irait plus vite, simplement en ajoutant des directives du style : #pragma config WDT = OFF // Eteint le WatchDog.

    Bon, ça c'est en C. J'sais que le C n'est pas très adapté aux architecture 16F, mais qui ne tente rien n'a rien, d'autant plus que nombreuses sont les personnes qui m'ont dit que ça fonctionnait assez bien le C sous 16F...(même si c'est pas fait pour...).


    PS : Essaie d'éffacer ton 16F avant toute prog... (on sait jamais!)

    bon courage!

  5. #4
    blacksword

    Re : Programmer un pic

    MPLAB j'ai essayé mais il reconnait pas ma carte du coup je peux pas l'utiliser... Après le C, je connais pas (encore), flowcode c'est que de l'organigramme... De toute façon je pense que çe ne devrait pas me genêr si le watchdog est actif. Le logiciel efface le pic avant de programmer mais même quand je l'efface manuellement, ça change rien...

  6. #5
    Linternautedu94

    Talking Re : Programmer un pic

    Salut,

    Citation Envoyé par blacksword Voir le message
    MPLAB j'ai essayé mais il reconnait pas ma carte du coup je peux pas l'utiliser... Après le C, je connais pas (encore), flowcode c'est que de l'organigramme... De toute façon je pense que çe ne devrait pas me genêr si le watchdog est actif. Le logiciel efface le pic avant de programmer mais même quand je l'efface manuellement, ça change rien...
    En fait ce que je suis en train d'essayer de te dire c'est de compiler le tout sous MPLAB en te mettant un tout petit peu au C qui est relativement facile, pour obtenir un .hex que tu chargeras avec ton soft.

    J'pense que ça peut très bien marcher... En tout cas, c'est ce que je fais personnellement pour programmer mes 18F. J'utilise MPLAB pour mon 18F, je regle les fuse avec les " #pragma config ", je compile, j'obtiens un .hex que je charge sur mon PIC avec le soft winpic muni de mon programmateur Schaer+ fait maison.

    Pour le FlowCode, je connais pas mais j'y jetterai sûrement un oeil.

    Pour le C, t'as des tonnes de tuto pour bien démarrer et c'est vraiment pas compliqué, surtout pour faire clignoter une LED car tout est déjà presque fait.

    Un exemple rapidos de clignotement de LED :

    Code:
    #include <delays.h>	// Ajout de fichier entête contenant le "prototype" d'autres fonctions
    #include <p16f877.h>	// Ajout de l'entête du PIC adéquat...pour l'utilisation de ses périphériques.
    
    /************ FONCTION PRINCIPALE ***************/
    
    void main(void)
    {
    	/******************* CONFIGURATION DES ENTREES / SORTIES (I/O) *************************/
    	
    	TRISA = 0b11111110;	// TRISA permet de regler la direction des signaux sur chaque pins.
    						// une mise à '1' correspond à une patte en entrée => '1' comme Input
    						// Une mise à '0' correspond à une patte en sortie => '0' comme Output.
    						// Ici on regle chaque patte, une à une. Si tu ne t'intérèsse qu'à une et une seule
    						// patte, il faut regler un seul bit. Et donc tu peux écrire par exemple pour la patte RA0
    						// TRISAbits.RA0 = 0; 	=> Mise en sortie de la patte RA0
    						// Pour connaître les noms des variables, tu dois aller dans le .h de ton pic.
    						
    	PORTA = 0b11111110;	// PORTA regroupe, quant à lui, les 8 pattes liées au port A. 
    						// Les bits 7 à 1 sont mis à '1' => +5V.
    						// Tu peux, de la même manière que pour les TRIS'X', faire : 
    						// PORTAbits.RA0 = 0; 
    						
    	// Après avoir effectué ces reglages et en supposant que tu ai bien reglé ton oscillateur, tu peux faire : 
    	// On suppose que ton oscillateur a la fréquence de 20Mhz.
    	
    	/**************************************************************************************/
    	
    	/*********************** FAIT CLIGNOTER LA LED SUR RA0 ********************************/
    	
    	while(1)	// Boucle infinie.
    	{
    		Delay10KTCYx(250);	// Les 4 instructions permettent une temporisation de 2s au total.
    		Delay10KTCYx(250);	// une seconde de temporisation ici.
    		
    		PORTAbits.RA0 = 1;	// Mise à +5V sur la sortie où la LED est connectée.
    		
    		Delay10KTCYx(250);	// Temporisation d'une seconde encore une fois ici, avant la mise à 0V
    		Delay10KTCYx(250);
    		
    		PORTAbits.RA0 = 0;	// Mise à 0 V sur la sortie où la LED est connectée.
    	}	// Avec la boucle infinie tant que "vrai" (1 <=> vrai), on fait sans cesse ces instructions...
    		// Au final, on a une LED qui clignote a la fréquence f = 1/ (Toff + Ton) = 1/ (1 + 1) = 0.5Hz. ;-)
    		
    	/***************************************************************************************/
    }
    
    /******** FIN DE LA FONCTION PRINCIPALE ********/
    
    // PS : Tout ce qui commence par des "//" ne sont que des commentaires non prit en compte par le compilateur C et donc non intégré dans le PIC ;)
    Si tu veux vérifier que ton PIC fonctionne, donne moi ta config + la fréquence de ton oscillo, je te génèrerai un .hex pour vérifier que ça fonctionne.

    Malheureusement c'est tout ce que je peux faire pour toi...

    Bon courage,

    A+

  7. A voir en vidéo sur Futura

Sur le même thème :

Discussions similaires

  1. programmer un PIC
    Par titi570 dans le forum Électronique
    Réponses: 8
    Dernier message: 08/01/2009, 19h52
  2. Programmer un PIC 16f877 en C ?
    Par technoPic dans le forum Électronique
    Réponses: 1
    Dernier message: 06/01/2009, 18h10
  3. Réponses: 0
    Dernier message: 18/03/2007, 15h43
  4. programmer un pic
    Par gwendoline dans le forum Électronique
    Réponses: 1
    Dernier message: 18/06/2006, 20h01
  5. programmer un pic
    Par salut dans le forum Électronique
    Réponses: 1
    Dernier message: 22/03/2003, 10h41