Soucis de configuration pour DSPic33FJ256GP710

Postby risc » Sat Nov 09, 2013 12:00 am

Salut,

Pour t'aider à mieux maitriser les différents périphériques je te recommande, comme je le fait régulièrement, d'utiliser les exemples de code qui existent pour la plupart des périphériques de ton dsPIC33. Tu les trouveras là : http://www.microchip.com/codeexamples et ensuite tu filtres par famille.
En démarrant avec ces exemples tu gagneras beaucoup de temps.

a+
risc
 
Posts: 67
Joined: Fri Jan 17, 2014 4:42 pm

Postby bovix » Fri Jan 31, 2014 12:00 am

Hello à tous,

Merci pour ta réponse RISC, effectivement j'y ai passer un peu de temps, ainsi que dans la datasheet du DSPic avec ces différentes sections... comment améliorer son anglais, mais fort intéressant ;
alors voilà le problème dans la cas de la configuration de l'ADC était justement la séquence d’ordonnancement des différentes registres.

voila ce que ca donne maintenant :

void init_adc(){        //--- gestion des registres liés au ADC ---//        //--- Sélection du channal --> bits de 0 à 4 et bit 7---//         AD1CHS0bits.CH0SA = 0x05;               // selection de l'entrée analogique sur le chanel 0 (mesure)          AD1CHS0bits.CH0NA = 0;                  // selection de la référence Vref- (masse)         //--- Choix du type de convertion (12/10 bits) -->bit 10 du registre ---//        AD1CON1bits.AD12B = 0;                  // convertisseur sur 10 bits --> 0                                                                         // convertisseur sur 12 bits --> 1                //--- Choix du format pour le buffer --> bit 8 à 9 ---//         AD1CON1bits.FORM = 0;                   // format Unsigned Interger (0 - 1023 or 0 - 4095)                //--- Choix de la source pour le temps d'échantillonage (clock) --> bit 5 à 7 ---//         AD1CON1bits.SSRC = 0x07;                        // 0b111 = 7 --> Counter interne Automatic Trigger        //--- choix de l'échantillonage --> bit 3 --//         AD1CON1bits.SIMSAM = 0;                 // ici qu'un seul canal                //--- mode d'échantillonage --> bit 2 ---//         AD1CON1bits.SAMP = 0;        AD1CON1bits.ASAM = 1;                   // converstion après la dernière converstion          //--- Choix de la référence des tension --> 3x bits de 13 à 15 ---//        AD1CON2bits.VCFG = 0;                   // Vref + = AVdd = 5V ou 3V & Vref - = AVss = GNS                   //--- Choix des canaux (simple - deux - multiple) --> 2 bits de 8 et 9 ---//            AD1CON2bits.CHPS = 0;                   // seulement un chanal = CH0                  //--- Configuration de la vitesse de l'interruption après échnatillonnage --> bit 2 à 5 ---//         AD1CON2bits.SMPI = 0;                   // genère une interrruption après échantillonnage          //--- Temps automatic d'échantillonage --> 5x bit de 8 à 12 ---//        AD1CON3bits.SAMC = 0x03;                // 3 TAD        //--- choix de la vitesse de conversion selon la clock choisie --> 8x bits de 0 à 7---//         AD1CON3bits.ADCS = 0x27;                // 0b 0010 0111 = 0x27 = 39                                                                          // 1 / Fcy = Tcy                                                                          // ADCX + 1 = x                                                                        // Tcy * x = Tad = 1us                                                                          // 40MHz --> 25ns => 25ns * 40 = 1us        //--- gestion de l'interruption ---//         //--- reset du flag d'interruption lié à l'AD ---//         IFS0bits.AD1IF = 0;                             // remise à zéro         //--- priorité de l'interruption ---//                                  IPC3bits.AD1IP = 0x07;                  // ici level le plus haut --> 7                 //--- activation de l'interruption ---//         IEC0bits.AD1IE = 1;         //--- activation du convertisseur ADC ---//         AD1CON1bits.ADON = 1;                   // convertisseur actif   }
bovix
 
Posts: 164
Joined: Fri Jan 17, 2014 4:42 pm

Postby bovix » Fri Jan 31, 2014 12:00 am

Bonsoir à tous, maintenant

je viens sur un nouveau sujet plus liée à la carte explorer que je voulais poster

En me remettant sur la programmation de la carte Explorer 16, je me suis aperçu que les concepteurs de la carte avait placé sur la même pin RA7, un switch S5 et une led D10 (voir la page 42 - 43 du datasheet lié à la carte) ; et j'ai pu m'apercevoir que si je configurerai ma ligne en entrée (numérique), celle-ci est toujours active (donc je ne peux pas utiliser cette touche) ; donc ma question, y a-t-il un moyen "soft" de ne pas tenir compte de la petit chute de tension sur cette ligne qui est crée la diode

Merci d'avance pour tous vos retours

Amicalement - le cht'y Philou
bovix
 
Posts: 164
Joined: Fri Jan 17, 2014 4:42 pm

Previous

Return to Explorer-16 (01 à 05-2007)

Who is online

Users browsing this forum: No registered users and 1 guest