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 ---
Tout ce qui n'a pas de catégorie !
utilisateur de bootloader ?
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#11 Message par Gérard » dim. 4 août 2019 21:54 lien vers la Data-Sheet : Cliquez ici

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 ...
:sifflotte: de quoi voir venir !


18F47J53_restant.jpg


C'est vrai que vu sous cet angle... :-D
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

utilisateur de bootloader ?
cyril13110
Confirmé
Confirmé
Messages : 724
Âge : 41
Enregistré en : avril 2016
Localisation : 13

#12 Message par cyril13110 » jeu. 8 août 2019 17:32 lien vers la Data-Sheet : Cliquez ici

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 ?

utilisateur de bootloader ?
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#13 Message par paulfjujo » dim. 11 août 2019 18:00 lien vers la Data-Sheet : Cliquez ici

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
Aide toi, le ciel ou FantasPic t'aidera

utilisateur de bootloader ?
cyril13110
Confirmé
Confirmé
Messages : 724
Âge : 41
Enregistré en : avril 2016
Localisation : 13

#14 Message par cyril13110 » dim. 11 août 2019 21:13 lien vers la Data-Sheet : Cliquez ici

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?

utilisateur de bootloader ?
cyril13110
Confirmé
Confirmé
Messages : 724
Âge : 41
Enregistré en : avril 2016
Localisation : 13

#15 Message par cyril13110 » lun. 12 août 2019 13:45 lien vers la Data-Sheet : Cliquez ici

bonjour a tous,
je viens de regarder le 18F46J50 a 64Ko de mémoire et le 18F47J53 a 124Ko de mémoire ca m'étonnerais fortement que je puisse utiliser le meme soft.
Jai pas plus regardé que ca mais est ce qu'il ny aurai pas simplement un paramètre a modifier comme la taille memoire de la puce?

utilisateur de bootloader ?
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#16 Message par paulfjujo » mer. 14 août 2019 16:27 lien vers la Data-Sheet : Cliquez ici

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

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

Aide toi, le ciel ou FantasPic t'aidera

utilisateur de bootloader ?
cyril13110
Confirmé
Confirmé
Messages : 724
Âge : 41
Enregistré en : avril 2016
Localisation : 13

#17 Message par cyril13110 » mar. 20 août 2019 16:25 lien vers la Data-Sheet : Cliquez ici

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?

utilisateur de bootloader ?
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#18 Message par paulfjujo » mar. 20 août 2019 17:19 lien vers la Data-Sheet : Cliquez ici

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 !
:sifflotte: ç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 *)&param)[0]
#define Hi(param) ((char *)&param)[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:;
     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=; //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(,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=;  // 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=;
}
 

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);
      }
      
  
}

Aide toi, le ciel ou FantasPic t'aidera

utilisateur de bootloader ?
cyril13110
Confirmé
Confirmé
Messages : 724
Âge : 41
Enregistré en : avril 2016
Localisation : 13

#19 Message par cyril13110 » mar. 20 août 2019 20:54 lien vers la Data-Sheet : Cliquez ici

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?

utilisateur de bootloader ?
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#20 Message par paulfjujo » mar. 20 août 2019 21:09 lien vers la Data-Sheet : Cliquez ici

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
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Coin Fourre-tout »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 9 invités