06
janv.
2019
Par admin_fabien_f4ctz
dans Non classé
Tags: ARM, beaglebone, DsPIC, embarqué, embedded, Linux, logiciel, microchip, OpenWRT, PIC, PIC32, software, STM32
Radio
Electronique
Bibliothèque
Software
Politique de confidentialité
Politique de cookies (UE)
25
juin
2012
Par admin_fabien_f4ctz
dans Non classé
Tags: blinking, code source, DsPIC, DsPIC30, DsPIC30F4012, microchip, microcontroleur
Ceci est un exemple de code source montrant le paramètrage minimal d’un DsPIC30F4012 pour sortir sur RE0 des états hauts d’une longueur d’un temps cycle à 20MIPS à partir d’un quartz externe de 5MHz. Cela permet ainsi de valider un circuit avec ce composant en vérifiant que :
- Le composant est correctement alimenté.
- L’oscillateur fonctionne et la PLL est correctement configurée.
Pour cela, un fichier à ajouter à un projet vierge dans MPLAB avec les compilateurs C30 ou XC16 :
#include <p30fxxxx.h>;
_FOSC(CSW_FSCM_OFF && XT_PLL16);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF && MCLR_EN);
_FGS(CODE_PROT_OFF);
_FICD( ICS_PGD );
int main(void) {
OSCCONbits.POST = 0b01; // Datasheet page 7-14
TRISE = 0; // Port E en sortie
LATE = 0; // Initialisation du port E à 0
while(1) {
LATEbits.LATE0 = 1;
LATEbits.LATE0 = 0;
}
return 0;
}
25
juin
2012
Par admin_fabien_f4ctz
dans Non classé
Tags: blinking, code source, microchip, microcontroleur, PIC32, PIC32MX, PIC32MX795F512L
Ceci est un exemple de code source montrant le paramètrage minimal d’un PIC32MX795F512L pour sortir sur RA1 des états hauts d’une longueur d’un temps cycle à 80MIPS. Cela permet ainsi de valider un circuit avec ce composant en vérifiant que :
- Le composant est correctement alimenté.
- L’oscillateur fonctionne et la PLL est correctement configurée.
Pour cela, deux fichiers à ajouter à un projet vierge dans MPLAB avec les compilateurs C32 ou XC32 :
#include "HardwareProfile.h"
void CPUInit(void) {
SYSTEMConfigPerformance(SYS_FREQ);
DDPCONbits.JTAGEN = 0; // Disable JTAG
DDPCONbits.TROEN = 0; // Disable trace
PORTSetPinsDigitalOut(IOPORT_A,BIT_1);
}
int main(void) {
CPUInit();
while(1) {
mPORTASetBits(BIT_1);
mPORTAClearBits(BIT_1);
}
return 0;
}
#include <p32xxxx.h>
#include <plib.h>
//////////////////////////////////////////////////////////////////////////////////////////
// Configuration processeur //
// //
// Informations disponibles dans le fichier d'aide : //
// - hlpPIC32MXConfigSet.chm //
// - http://ww1.microchip.com/downloads/en/DeviceDoc/61156G.pdf //
// page 165 Section 28.1 - Configuration bits //
//////////////////////////////////////////////////////////////////////////////////////////
#pragma config FSRSSEL = PRIORITY_0 // Toutes les interruptions utilisent le shadow register
#pragma config FMIIEN = OFF // Interface Ethernet en mode RMII pour DP83848
#pragma config FETHIO = OFF // Configuration alternative des signaux du module Ethernet
#pragma config FCANIO = ON, FUSBIDIO = OFF, FVBUSONIO = OFF //Autres modules inutilises
#pragma config WDTPS = PS1, FWDTEN = OFF
#pragma config ICESEL = ICS_PGx1, DEBUG = OFF
#pragma config PWP = OFF, BWP = OFF, CP = OFF
////////// Configuration de l'oscillateur pour un quartz de 8MHz externe /////////////////
#pragma config FNOSC = PRIPLL // Choix de l'oscillateur primaire avec utilisation de la PLL
#pragma config POSCMOD = XT // Quartz < 10Mhz donc XT
#pragma config OSCIOFNC = ON
#pragma config FPLLIDIV = DIV_2, FPLLMUL = MUL_20, FPLLODIV = DIV_1 // 80Mips
#pragma config UPLLEN = ON, UPLLIDIV = DIV_2 // PLL USB
#pragma config FSOSCEN = OFF, IESO = OFF, FCKSM = CSDCMD // Autres parametres de l'oscillateur
#pragma config FPBDIV = DIV_1 // Horloge peripherique
//////////////////////////////////////////////////////////////////////////////////////////
// Definitions generiques //
// //
//////////////////////////////////////////////////////////////////////////////////////////
#define SYS_FREQ 80000000UL
#define GetPeripheralClock() (SYS_FREQ/(1 << OSCCONbits.PBDIV))
#define GetInstructionClock() (SYS_FREQ)
25
juin
2012
Par admin_fabien_f4ctz
dans Non classé
Tags: blinking, code source, microchip, microcontroleur, PIC12F, PIC12F683
Ceci est un exemple de code source montrant le paramètrage minimal d’un PIC12F683 pour sortir sur GPIO2 des états hauts d’une longueur d’un temps cycle soit 500ns (8MHz = 2MIPS). Cela permet ainsi de valider un circuit avec ce composant en vérifiant que :
- Le composant est correctement alimenté.
- L’oscillateur fonctionne.
Pour cela, un fichier à ajouter à un projet vierge dans MPLAB avec les compilateurs Hi-Tech PICC :
#include <htc.h>
/////////// Bits de configuration : Voir datasheet page 84, 12.1 Configuration bits //////////////
__CONFIG(FCMEN_OFF \
& IESO_OFF \
& BOREN_OFF \
& CPD_OFF \
& CP_OFF \
& MCLRE_ON \
& PWRTE_ON \
& WDTE_OFF \
& FOSC_INTOSCIO);
void main(void) {
//// Configuration de l'oscillateur interne (datasheet page 20, 3.2 Oscillator control) //////////
OSCCONbits.IRCF = 0b111; // 8Mhz
OSCCONbits.SCS = 0; // Configuration de l'horloge systeme
// définie par les bits de configuration
///// Configuration de entrees/sorties numeriques ////////////////////////////////////////////////
ANSELbits.ANS2 = 0; // GPIO2 est numerique
TRISIObits.TRISIO2 = 0; // GPIO2 est une sortie
while(1) {
GPIObits.GP2 = 1;
GPIObits.GP2 = 0;
}
}