Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
utilisateur de bootloader ?
- Gérard
Expert- Messages : 1661
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
paulfjujo a écrit :Gérard a écrit :Parce que le bootloader prend quand même de la place en mémoire.
oui, sur un 16F il prend 256 bytes en ROM... bootloader serie
sur mon 18F47J53 , j'ai 131 KBytes et le firmware bootloader HID ,prend 7.5KB
A priori MikroC ne decompte pas le bootloader sur la taille ROM utilisée
Avec mon apply en cours
j'ai utilisé 2223 bytes en RAM et 25 KB en ROM
et il me resterait 105 Kb sur les 131 Kb ...
de quoi voir venir !
18F47J53_restant.jpg
C'est vrai que vu sous cet angle...
utilisateur de bootloader ?
-
cyril13110
Confirmé- Messages : 742
- Âge : 41
- Enregistré en : avril 2016
- Localisation : 13
bonjour a tous,
je viens de regarder le kit que jai achete avec le bootloeader et je me suis trompe de reference.
le pic est un 18F46J50.
du coup je profite du post pour poser ma question et comprendre.
je ne trouve pas de bootloader mikroelectronika, je nai que le code microchip mais pour lavoir deja testé il ne fonctionne pas avec les softs et codes généré avec mikrobasic.
vous n'aurai pas une petite idée ?
je viens de regarder le kit que jai achete avec le bootloeader et je me suis trompe de reference.
le pic est un 18F46J50.
du coup je profite du post pour poser ma question et comprendre.
je ne trouve pas de bootloader mikroelectronika, je nai que le code microchip mais pour lavoir deja testé il ne fonctionne pas avec les softs et codes généré avec mikrobasic.
vous n'aurai pas une petite idée ?
utilisateur de bootloader ?
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
Quelle est la reféreence de ton Kit ?
Est-ce une carte de la famille Clicker MikroE ?
j'ai une clicker 18F47J53 et une Clicker 18F87J50
chacune avec un bootloader
Accessible avec l'outil ( incorporé au compilateur MikroC ( ou basic)
sous le nom de HID Bootloader
il suffit de connecter le cable USB dessus la carte ( et sur le PC)
Un reset sur la carte et celle ci doit etre reconnue
details ICI
Quelle est la reféreence de ton Kit ?
Est-ce une carte de la famille Clicker MikroE ?
j'ai une clicker 18F47J53 et une Clicker 18F87J50
chacune avec un bootloader
Accessible avec l'outil ( incorporé au compilateur MikroC ( ou basic)
sous le nom de HID Bootloader
il suffit de connecter le cable USB dessus la carte ( et sur le PC)
Un reset sur la carte et celle ci doit etre reconnue
details ICI
utilisateur de bootloader ?
-
cyril13110
Confirmé- Messages : 742
- Âge : 41
- Enregistré en : avril 2016
- Localisation : 13
bonsoir paulfjujo et bonsoir a tous,
j'ai fait la betise de prendre un kit estampillé microchip.
cest le kit reference MA180024
https://www.digikey.com/product-detail/en/microchip-technology/MA180024/MA180024-ND/2050588.
je me demande si le bootloader du 47J53 ne pourrait pas être compatible avec le 46J50.....
est ce que ce n'est qu'une question de taille mémoire des pics ?
apres je vais etre honette, je nai jamais utilisé de bootloader sur un pic du coup je ne suis pas certain de vraiment savoir l'utiliser.
de memoire certain uc, il fallait adapté le code pour le faire fonctionner avec le boot.
est ce cas avec les pic?
j'ai fait la betise de prendre un kit estampillé microchip.
cest le kit reference MA180024
https://www.digikey.com/product-detail/en/microchip-technology/MA180024/MA180024-ND/2050588.
je me demande si le bootloader du 47J53 ne pourrait pas être compatible avec le 46J50.....
est ce que ce n'est qu'une question de taille mémoire des pics ?
apres je vais etre honette, je nai jamais utilisé de bootloader sur un pic du coup je ne suis pas certain de vraiment savoir l'utiliser.
de memoire certain uc, il fallait adapté le code pour le faire fonctionner avec le boot.
est ce cas avec les pic?
utilisateur de bootloader ?
-
cyril13110
Confirmé- Messages : 742
- Âge : 41
- Enregistré en : avril 2016
- Localisation : 13
utilisateur de bootloader ?
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour Cyril
https://www.digchip.com/datasheets/down ... &type=prod
Apparament tu as bien un bootloader sur ton PIC , si j'en crois ce document
PIC18F46J50 FULL-SPEED USB
DEMONSTRATION BOARD
USER’S GUIDE
https://www.digchip.com/datasheets/down ... &type=prod
Apparament tu as bien un bootloader sur ton PIC , si j'en crois ce document
PIC18F46J50 FULL-SPEED USB
DEMONSTRATION BOARD
USER’S GUIDE
ome example USB firmware is preprogrammed on the PIC18F46J50 Full-Speed USB
Demonstration Board. The microcontroller contains both demo firmware and a USB
bootloader that is independent of the demo firmware. The bootloader can be used to
program a new application’s firmware *.hex files into the microcontroller’s Flash
memory, eliminating the need for a dedicated In-Circuit Serial Programming™
(ICSP™) programmer.
To enter the Bootloader mode, hold down the S2 push button and momentarily press
and release the MCLR push button. The microcontroller firmware checks the RB2 I/O
pin state once after coming out of Reset. (For more information on the USB bootloader,
see Section 3.3 “Using the HID Bootloader Firmware”.)
3.3 USING THE HID BOOTLOADER FIRMWARE
The PIC18F46J50 Full-Speed USB Demonstration Board is preprogrammed with HID
class USB bootloader firmware as well as the USB composite HID+MSD demo firmware.
The HID bootloader is independent of the composite HID+MSD demo firmware.
The bootloader firmware can be used to update the Flash memory contents of the
PIC18F46J50 microcontroller, similar to using a dedicated ICSP based programmer.
When the bootloader is used, a new .hex file can be programmed into the device by
sending it directly over the USB cable to the PIC18F46J50.
The HID bootloader firmware uses self-programming operations to update the Flash
memory contents of the microcontroller.
To use the HID bootloader:
1. Launch the HID bootloader application by selecting:
Start>Programs>Microchip>MCHPFSUSB v2.4>USB HID Bootloader.
The dialog box, shown in Figure 3-3, appears. (This dialog box appears whenever
the USB device is not yet attached or the firmware is not in Bootloader
mode.)
2. Plug the PIC18F46J50 Full-Speed USB Demonstration Board into a free USB port.
3. Place the board in the Bootloader mode by pressing and holding down the S2
push button (RB2 I/O pin). While still holding down the S2 push button, momentarily
press and release the MCLR push button (S4) to reset the device, keeping
the S2 button depressed until after the device has come out of Reset.
The bootloader firmware performs a quick check of the RB2 I/O pin after coming
out of Reset to determine if the device should enter Bootloader or normal Demo
mode.
As a result:
• The device re-enumerates as a generic HID class device (instead of a composite
HID+MSD device)
• The “USB HID Bootloader” PC application automatically detects the PIC18F46J50
Full-Speed USB Demonstration Board
• The dialog box, shown in Figure 3-4, appears
FIGURE 3-4: USB HID BOOTLOADER APPLICATION – DEVICE FOUND
Once the PC application has found the USB device, the application can be used to
open the Intel® HEX 32-bit formatted *.hex firmware images and program them using
the respective buttons
utilisateur de bootloader ?
-
cyril13110
Confirmé- Messages : 742
- Âge : 41
- Enregistré en : avril 2016
- Localisation : 13
bonjour pauljujo et bonjour a tous,
desole je viens a peine de voir ton message.
effectivement la carte est arrivé avec un bootloader microchip.
comme je ne sais pas comment l'utiliser je lai écraser sans savoir se que je faisais.
aujourd'hui jai reussi' a partir de l'exemple mikroelectronika, charger un bootloader mikroe.
Dans un premier temps, ca semble fonctionné car le soft de chargement vois bien la puce.
en cas si j'arrive a avoir 5 minutes je ferais un tuto.
ce que je ne sais pas cest comment preparer le programme.
est ce que la conf materiel je la fait a l'identique du bootloader? est ce que si je charge un code avec une conf différente je gait sauter le bootloader?
est ce qu'il y a des lignes de codes particulières a taper?
desole je viens a peine de voir ton message.
effectivement la carte est arrivé avec un bootloader microchip.
comme je ne sais pas comment l'utiliser je lai écraser sans savoir se que je faisais.
aujourd'hui jai reussi' a partir de l'exemple mikroelectronika, charger un bootloader mikroe.
Dans un premier temps, ca semble fonctionné car le soft de chargement vois bien la puce.
en cas si j'arrive a avoir 5 minutes je ferais un tuto.
ce que je ne sais pas cest comment preparer le programme.
est ce que la conf materiel je la fait a l'identique du bootloader? est ce que si je charge un code avec une conf différente je gait sauter le bootloader?
est ce qu'il y a des lignes de codes particulières a taper?
utilisateur de bootloader ?
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
cyril13110 a écrit :...
ce que je ne sais pas cest comment preparer le programme.
est ce que la conf materiel je la fait a l'identique du bootloader? est ce que si je charge un code avec une conf différente je vait sauter le bootloader?
est ce qu'il y a des lignes de codes particulières a taper?
si le HID bootloader MikroE reconnais ton MCU ..ça sent bon
tu n'as pas à te preoccuper du bootloader dans ton application ...
par contre la config sera celle du bootloader , en particulier pour FOSC
probablement 48MHz pour satisfaire à la liaison USB..
Le HID bootloader Mikroe se charge à ce que ton application, lors du chargement du programme,
ne deborde pas et ecrabouille le bootloader ..
par contre tu peux l'ecrabouiller toi meme si tu ecris dedans , ou si un bug t'envoie là ou il faut pas !
ça m'est arrivé !
exmple de programme pour un clicker2 18F87J50 avec booloader USB
utilise UART1,ADC et en option HID Terminal ( enlever la poussiere, il date de 2017 !)
on voit qu'il n'y aRien de special concernant le bootloader !
meme pour les vecteurs d'interruptions ..c'est transparent.
mais vaut mieux commencer par faire clignoter une led ..
par contre les statistiques données par mIkroC sur la taille occupée par le programme que tu installes,RAM & ROM
ne tient pas compte du bootloader
Code : Tout sélectionner
#define Version "170108"
#define Directory " C:\\_MikroC\\_MesProjets_MikroC\\_18F87J50_Clicker2 "
#define Project " Clicker2_18F87J50_For_Test.mcppi"
#define Source " Clicker2_test_ADC"
#define MCU "PIC18F87J50" // sur carte Clicker2 MikroE
#define FOSC 48 // Q=8MHz PLL ON FOSC=48MHz
#define With_UART1
#define With_HID_Terminal
/*
18F87J50_Q8Mhz_PLL_Fosc_48Mhz.cfgsch
CONFIG1L : $1FFF8 : 0x00AC
CONFIG1H : $1FFF9 : 0x00F7
CONFIG2L : $1FFFA : 0x00C5
CONFIG2H : $1FFFB : 0x00FF
CONFIG3L : $1FFFC : 0x00F8
CONFIG3H : $1FFFD : 0x00FF
*/
//MicroBus Socket #1
//--- left ---------
//RA0 AN STAT input
//RD2 RST POWERKEY output
//RD3 CS RTS output with 1K to 0V
//---- right -------
//RG3 PWM RI input
//RB3 INT CTS ouput
//RG2 RX TXD ouput
//RG1 TX RXD input
//RD6 DTR output
// nota: PIC 18F87J50 Clicker2
// Pins reservés , non utilisables
// RJ5 Stat
// RE6 Fault
// RF6 Vsense
// RE5 Sensel
//
// RD4 affecté à LD1
// RE4 affecté à LD2
// RD7 affecté à BP1
// RH3 affecté à BP2
// RA1 Analog input
// RA2 analog input
// RA4 output to drive a relais
// *** see Cliker2_Hardware.h ****
sbit LD1 at LATD4_bit;
sbit LD2 at LATE4_bit;
sbit LD1_Direction at TRISD4_bit;
sbit LD2_Direction at TRISE4_bit;
sbit BP1 at RD7_bit;
sbit BP2 at RH3_bit;
sbit BP1_Direction at TRISD7_bit;
sbit BP2_Direction at TRISH3_bit;
sbit Etat_Bat at RJ5_bit;
sbit Etat_Bat_Direction at TRISJ5_bit;
sbit CS_PIN at LATD3_bit ;
sbit CS_PIN_Direction at TRISD3_bit;
#define Lo(param) ((char *)¶m)[0]
#define Hi(param) ((char *)¶m)[1]
//-- commandes terminal VT220
#define CLS 12 // effacement de page sur Terminal VBRAY
#define CR 13
#define VT 10
#define LF 10
#define TAB 9
#define BELL 7
#define Byte unsigned char
#define uint8 unsigned char
#ifdef With_HID_Terminal
// Buffers should be in USB RAM
unsigned char readbuff[64] absolute 0x500;
unsigned char writebuff[64] absolute 0x540;
#endif
int Tension;
const char chaine0[]="Cliker2 18F87J50 : Test ADC sur clicker2 \r\n ";
const char chaine1[]="Directory" Directory"\r\n";
const char chaine2[]="Projet : "Project"\r\n";
const char chaine3[]="Source MikroC : "Source"_"Version"_.c\r\n";
#ifdef INTERNAL_FOSC
const char chaine4[]="FOSC interne 8MHz , Alim 3,3V \r\n";
#else
const char chaine4[]="Q=8MHZ x PLL => 48MHz Alim 3,3V \r\n";
#endif
const char chaine5[]="Utilise Timer0,Timer1,HID USB,UART1 19200 \r\n";
const char chaine6[]=" \r\n";
const char *RS_Str[]={chaine0,chaine1,chaine2,chaine3,chaine4,chaine5,chaine6};
Byte TEXTE[128];
Byte * txt;
Byte CRam1[80];
Byte *p;
unsigned int i,j,k,l,m;
unsigned long Freq;
float f1,f2;
#define MAXLEN1 128
unsigned char buffer1[MAXLEN1];
unsigned int Index1,i1;
unsigned int UART1_DataReady;
unsigned char c1;
volatile unsigned int Flag_Timer0;
volatile unsigned int Cpt0;
volatile unsigned int Cpt1,Max_Timer1;
volatile int Flag_Timer1;
unsigned char sec;
volatile struct chbits { // 8 flags
unsigned FrameErr:1;
unsigned Over:1;
unsigned disponible:1;
unsigned Tracking:1;
unsigned Store:1;
unsigned Dialogue:1;
unsigned Visible:1;
unsigned One_Shoot:1;
unsigned MCP_OK:1;
unsigned Sommeil:1;
unsigned Rb0:1;
unsigned First_Run:1;
unsigned Buffer1_Full:1 ;
unsigned dummy :3 ;
}Drapeaux ;
void Hardware_Init(void);
void UART1_Write_CText(const char *txt1);
void CRLF1(void);
void strConstRamCpy(char *dest, const char *source);
void fltToa (double x, unsigned char *str,char precision);
void Init_Timer0(void);
void Interrupts() iv 0x0008 ics ICS_AUTO
{
// ---- UART1 -----------
if((RC1IF_bit==1) && (RC1IE_bit==1))
{
if(OERR1_bit)
{
CREN1_bit = 0;
CREN1_bit = 1;
OERR1_bit = 0;
}
if(FERR1_bit) c1 = RCREG1;
c1 = RCREG1;
if ((c1==CR)|| (i1>=MAXLEN1))
{
UART1_DataReady=1;
if (i1 >=MAXLEN1)
{
UART1_DataReady=2;
Drapeaux.Buffer1_Full=1;
}
PIE2.RC1IE=0 ; //interdit IT Reception UART
buffer1[i1]=0;
Index1=i1;
i1=0;
c1=0;
}
else
{
buffer1[i1]=c1;
Index1=i1;
i1++;
}
}
// ==== IT Timer0 =============
if((TMR0IE_bit) && (TMR0IF_bit))
{
Cpt0++;
if(Cpt0>9)
{
Flag_Timer0=1;
TMR0IE_bit=0;
Cpt0=0;
}
#ifdef INTERNAL_FOSC
// 100 mS prescaler 1/4 Fosc= 8Mhz
TMR0H = 0x3C;
TMR0L = 0xB0;
#else
TMR0H= 0x6D; // hi 28036;
TMR0L =0x84 ; // Lo 28036;
#endif
TMR0IF_bit=0; // Raz Flag
}
// ------IT timer 1 ----------------
if ( (TMR1IE_bit==1) && ( TMR1IF_bit==1))
{ // Test "Peripheral Interrupt Request Register 1" for Timer1 Flag
Cpt1++;
if (Cpt1>=Max_Timer1)
{
Cpt1=0;
Flag_Timer1=1;
TMR1IE_bit=0;
}
// 24 * 41.666mS = 1 seconde et init timer1 à 3035 et prescaler=1/8 at 48MHz
TMR1H= 0x0B; // Hi (3035);
TMR1L= 0xDB; // Lo (3035);
PIR1.TMR1IF=0;
}
#ifdef With_HID_Terminal
USB_Interrupt_Proc();
#endif
}
#ifdef With_HID_Terminal
void PrintHex( unsigned char x)
{
ByteToHex(x ,txt); k=strlen(txt);*(txt+k)=32; *(txt+k+1)=0;
strcpy( &writebuff,txt);
while(!HID_Write(&writebuff,64));
}
void CRLF_HID()
{
*(&writebuff)=13;
*(&writebuff+1)=10;
*(&writebuff+2)=0;
while(!HID_Write(&writebuff,64));
}
#endif
void Arme_Timer1()
{
// 100mS * Max_Timer1
TMR1IF_bit = 0;
TMR1H = 0x0B;
TMR1L = 0xDC;
Cpt1=0;
Flag_Timer1=0;
TMR1ON_bit=1; // Timer0 ON
TMR1IE_bit = 1;
}
void Init_Timer1(void)
{
//Timer1 100mS at 10MHz
T1CON = 0x23;
TMR1IF_bit = 0;
TMR1H = 0x0B;
TMR1L = 0xDC;
TMR1IP_bit=0; // low level interrupt
TMR1IE_bit = 1;
INTCON = 0xC0;
Cpt1=0;
Flag_Timer1=0;
Max_Timer1=40;
}
void Init_Timer0()
{
//--- init timer0 en mode 16 bits
//see PIC18F25K22_46K22_41412E.pdf 11.11 page 159
// 18661 prescaler =256 1sec at 48MHz 48E5
// 28036 prescaler=32 48MHz => 100mS 6D84
// 3035 prescaler =128 0,5sec @64Mhz
// 3035 prescaler=128 2sec at 16Mhz
// 34286 prescaler=128 1,0sec at 16Mhz 85EE
// 26456 prescaler=128 1sec at 20Mhz
#ifdef INTERNAL_FOSC // 8Mhz
//Timer0
//Prescaler 1:4; TMR0 Preload = 15536; Actual Interrupt Time : 100 ms
T0CON = 0x81;
TMR0H = 0x3C;
TMR0L = 0xB0;
#else
T0CON.PSA=0; // Timer0 prescaler assigned to Clock
T0CON.T0PS2=1; //
T0CON.T0PS1=0; //
T0CON.T0PS0=0; // prescler =>100 => 1/32
T0CON.T0CS=0; // internal cycle clock
T0CON.T08BIT=0 ; // Mode 16 bits
// 100msec at 48MHz et prescaler=1/32
TMR0H= 0x6D; // hi 28036;
TMR0L =0x84 ; // Lo 28036;
#endif
INTCON.TMR0IF=0; // raz flag interrupt
Cpt0=0;
Flag_Timer0=0;
INTCON2.TMR0IP=1;
INTCON.TMR0IE=1;
T0CON.TMR0ON=1;
}
// --- Copie le texte depuis ROM vers RAM
void strConstRamCpy(char *dest, const char *source)
{
while(*source) *dest++ = *source++ ;
*dest = 0 ; // terminateur
}
void CRLF1()
{
UART1_Write(CR);
UART1_Write(LF);
}
void UART1_Write_CText(const char *t)
{
while (*t)
UART1_Write(*t++);
}
void RAZ_UART1()
{
buffer1[i1]=0;
Index1=0;
i1=0;
Drapeaux.Buffer1_Full=0;
c1=RCREG1;
c1=0;
UART1_DataReady=0;
PIE2.RC1IE=1 ;
}
void Hardware_Init(void)
{
TRISG=0xFF;
TRISA=0b11101111; // RA4 en sortie
TRISC=0b10111111; // RC6 en sortie
ADSHR_bit=1; // see -page 303
ANCON0=0b11111000; // 0xF9 ; // AN0,AN1 et AN2 = analog
ANCON1=0xFF; // No analog on AN15--AN10
ADSHR_bit=0; // see -page 303
TRISB.B0=1;
TRISB.B2=1; // utilisé pour strapper le 1er SMS demarrage
RBPU_bit=0; // pull up RB
CS_PIN_Direction=0;
CS_PIN=0;
Etat_Bat_Direction=1; // J5;
// TRISH=0b00001000; // all output except TH3 is a BP !
BP1_Direction = 1; // Set direction for buttons
BP2_Direction = 1; // RH3 used as output
LD1_Direction = 0; // Set direction for LEDs
LD2_Direction = 0;
LD1 = 0; // turn off LEDs
LD2 = 0;
}
void Init_ADC()
{
//config lecture ADC 10 bits
// REGISTER 21-1: ADCON0: A/D CONTROL REGISTER 0 DS39775C page 301
ADCON0.VCFG1=0; // - AVss=Gnd;
ADCON0.VCFG0=0; // +Avdd;
ADCON0.CHS3=0; // channel 1 selected
ADCON0.CHS2=0;
ADCON0.CHS1=0;
ADCON0.CHS0=1;
ADCON0.ADON=1; // ADC enabled
// REGISTER 21-2: ADCON1: A/D CONTROL REGISTER 1 page 302
ADCON1.ADFM=1; // right justified
ADCON1.ADCAL=0;
ADCON1.ACQT2=1;
ADCON1.ACQT1=1;
ADCON1.ACQT0=0; // 110=> 16 TAD
ADCON1.ADCS1=1;
ADCON1.ADCS2=1;
ADCON1.ADCS0=0; // 110 => Fosc/64
// REGISTER 21-3: ANCON0: A/D PORT CONFIGURATION REGISTER 2 page 302
ADSHR_bit=1; // see -page 303
ANCON0=0b11111101; // 0xFD ; // AN1= analog
ANCON1=0xFF; // No analog on AN15--AN10
ADSHR_bit=0;
}
void main()
{
#ifdef Oscillateur_Interne
OSCTUNE=0 ; // PLLEN_bit=0; TUN5..TUN0 = 0
OSCCON.IRCF2=1; // 4MHz=110 8MHZ = 111
OSCCON.IRCF1=1; // Internal Oscillator Frequency Select bits
OSCCON.IRCF0=0;
OSCCON.SCS1=1; // 11 = Postscaled internal clock
OSCCON.SCS0=1;
#endif
Hardware_Init();
LD2=1;
txt=&TEXTE[0];
TEXTE[0]=0;
CRam1[0]=0;
Drapeaux.First_Run=0;
Max_Timer1=40;
LD2=0;
LD1=1;
UART1_Init(19200); // PLL ON 48MHz USB possible
UART1_Write(CLS);
Delay_ms(500);
CRLF1();
LD1=0;
txt=&TEXTE[0];
for (i=0;i<5;i++)
{
UART1_Write_CText(RS_Str[i]);
// CRLF_HID();
Delay_ms(100);
}
LD1=0;LD2=0;
#ifdef With_HID_Terminal
HID_Enable(&readbuff,&writebuff); // Enable HID communication
// delay necessaire pour avoir le temps
// de commuter le HID terminal sur le bon device
Delay_ms(8000);
// Presentation
for (i=0;i<5;i++)
{
strConstRamCpy( &writebuff,RS_Str[i]);
while(!HID_Write(&writebuff,64)) ;
// CRLF_HID();
Delay_ms(100);
}
strConstRamCpy( &writebuff," Verif Fosc (Khz) = ");
while(!HID_Write(&writebuff,64)) ;
Freq=Get_Fosc_kHz() ;
LongWordToStr(Freq, CRam1);
strcpy( &writebuff,CRam1);
while(!HID_Write(&writebuff,64)) ;
CRLF_HID();
#endif
ADC_Init();
LD1=0;
LD2=1;
j=0;
while(1)
{
Tension=0; //ADC_Read(0);
ADCON0.B1 = 1; // On démarre la conversion
while (ADCON0.B1); // J'attends que le bit soit effacer à la fin de la conversion
_asm {
MOVF ADRESL,W
MOVWF _Tension
MOVF ADRESH,W
MOVWF _Tension+1
}
WordToStr(Tension,CRam1);
UART1_Write_CText("Analog CH1= ");
UART1_Write_Text(CRam1);
UART1_Write(TAB);
if (Tension >= 1010){
UART1_Write_Text("Rouge");
//Rouge=1;
}
else if (Tension >= 990){
UART1_Write_Text("Orange");
// Orange = 1;
}
else if (Tension >= 970){
UART1_Write_Text("Jaune");
// Jaune = 1;
}
else if (Tension < 970){
UART1_Write_Text("Vert");
// Vert = 1;
}
else
UART1_Write_Text("....");
Delay_ms(1000);
CRLF1();
// Rouge = Orange = Jaune = Vert = 0;
Delay_ms(100);
}
}
utilisateur de bootloader ?
-
cyril13110
Confirmé- Messages : 742
- Âge : 41
- Enregistré en : avril 2016
- Localisation : 13
je prends note des tes conseils et je vais les suivre.
de ce qui est du codage je ne comptais pas faire plus que du clignotement de led, ca tombe tres bien car sur la platine il y a 2 leds et 1 bp deja tous fait.
Comme il va falloir que je m'habitue a cette nouvelle puce et faire la transition du monde du 16F vers celui du 18F je pense que ca va m'occuper un bon moment et comme je n'ai que en gros 1 a 2 heures le soir a y consacrer ca va me tenir meme tres longtemps........
je vais jeter un oeuil a ton code je pense que ca pourra m'aider un jour.
je vais profiter jai une question subsidiaire, le terminal HID tu utilise quoi sur l'ordi comme soft?
si je ne me trompe pas cest une liaison series c'est bien ca?
je viens de lire ton code, jai vue que tu mets la conf de la frequence du pic et du PLL directement dedant.
Tu n'utilise pas la conf via l'interface di mikroC?
de ce qui est du codage je ne comptais pas faire plus que du clignotement de led, ca tombe tres bien car sur la platine il y a 2 leds et 1 bp deja tous fait.
Comme il va falloir que je m'habitue a cette nouvelle puce et faire la transition du monde du 16F vers celui du 18F je pense que ca va m'occuper un bon moment et comme je n'ai que en gros 1 a 2 heures le soir a y consacrer ca va me tenir meme tres longtemps........
je vais jeter un oeuil a ton code je pense que ca pourra m'aider un jour.
je vais profiter jai une question subsidiaire, le terminal HID tu utilise quoi sur l'ordi comme soft?
si je ne me trompe pas cest une liaison series c'est bien ca?
je viens de lire ton code, jai vue que tu mets la conf de la frequence du pic et du PLL directement dedant.
Tu n'utilise pas la conf via l'interface di mikroC?
utilisateur de bootloader ?
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
cyril13110 a écrit :
je vais profiter jai une question subsidiaire, le terminal HID tu utilise quoi sur l'ordi comme soft?
si je ne me trompe pas cest une liaison series c'est bien ca?
j'utilise le HID Terminal de MikroE (outils mikroE)
en fait c'est une liaison directe via USB
on peut donc avoir 3 liaisons serielles , UART1 Hardw , UART2 Hardw et la liaison USB
par contre avec le bootloader 18F2550 sur la carte READY for PIC
c'est via un convertisseur FTDI (embarqué sur la carte) vers USB ...donc UART ->FTDI - USB
equivalent à UART <-> cordon prolific USB
ça explique l'extreme lenteur du chargement via bootloader
Retourner vers « Coin Fourre-tout »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 105 invités