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 ---
Modérateur : Jérémy
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
BETA7.3.0 Remappable I2C bug
https://forum.mikroe.com/viewtopic.php?f=85&t=74094
Bien que mikroE ne veut pas le confirmer clairement
il s'avers que la tendance actuelle est d'harmoniser les librairies PIC MikroC avec celles de ARM
C'est vrai que microchip a racheté ATMEL .. on aura biento des PICARM ou ARMPIC ???
FANTASPICARM
en l'occurence, ma question concernait l'I2C Hardware
et l'adressage
dans les fonctions I2C, on passait l'adresse complete :
Adresse device sur 7 bits + le bit de commande R/W soit adresse complete sur 8 bits
ATTENTION DONC :
Dorenavant il ne faut passer que l'adresse sur 7 bits
les fonctions I2C sont sensées etre plus performantes : lecture par paquet de données , plutot qu'individuellement.
ca ne m'arrange pas forcément ..mais c'est comme cela maintenant
à moins de réecrire ses propres fonctions I2C !
Nota l'I2C software est inchangée
BETA7.3.0 Remappable I2C bug
https://forum.mikroe.com/viewtopic.php?f=85&t=74094
Bien que mikroE ne veut pas le confirmer clairement
il s'avers que la tendance actuelle est d'harmoniser les librairies PIC MikroC avec celles de ARM
C'est vrai que microchip a racheté ATMEL .. on aura biento des PICARM ou ARMPIC ???
FANTASPICARM
en l'occurence, ma question concernait l'I2C Hardware
Code : Tout sélectionner
// for PIC18F K42 and K83 family
unsigned short I2Cx_Wr(char slave_address, char *ptrdata, unsigned short count, unsigned short END_mode);
et l'adressage
so you confirm,
that the rules has changed
is it because MikroC 7.30 version
or with this particular PIC 18F27K42.?
I'm not sure what you mean by rules?
I2C library for K42/K83 has been like this since release.
Our developers wanted to add some consistency between all of our I2C libraries because I2C library for ARM and FT9xx for example,
were implemented in this way as well.
Additionally, it's more simple than the step-by-step I2C library for other PICs.
dans les fonctions I2C, on passait l'adresse complete :
Adresse device sur 7 bits + le bit de commande R/W soit adresse complete sur 8 bits
ATTENTION DONC :
Dorenavant il ne faut passer que l'adresse sur 7 bits
les fonctions I2C sont sensées etre plus performantes : lecture par paquet de données , plutot qu'individuellement.
ca ne m'arrange pas forcément ..mais c'est comme cela maintenant
à moins de réecrire ses propres fonctions I2C !
Nota l'I2C software est inchangée
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
je me réponds à moi-meme..
Probleme résolu sur I2C1 Hardware ...
en fait c'est NOUVEAU avec ce type de PIC ..
adresse I2C sur 7 bits en mode Hardware I2C
adresse I2C sur 8 bits en mode Software I2C
j'ai résumé mon test (minimaliste) , avec une RTC DS3231,sur ma page web.
ma is si quelqu'un veut développer ici , no problemo.
l'essentiel du code mikroC
affichage
Probleme résolu sur I2C1 Hardware ...
en fait c'est NOUVEAU avec ce type de PIC ..
adresse I2C sur 7 bits en mode Hardware I2C
adresse I2C sur 8 bits en mode Software I2C
j'ai résumé mon test (minimaliste) , avec une RTC DS3231,sur ma page web.
ma is si quelqu'un veut développer ici , no problemo.
l'essentiel du code mikroC
Code : Tout sélectionner
UART1_Write_CText(" Init I2C1 HW \r\n");
I2C1_Init();
// this following code works also OK
// PIN_MANAGER_Initialize();
// I2C1_Initialize();
Delay_ms( 100 );
UART1_Write_CText(" Init RTC DS3231 \r\n");
UART1_Write_CText(" Active sortie SQW=1Hz: \r\n");
/*
slave_address: slave address.
ptrdata: pointer to the received data.
count: number of bytes to be received.
END_mode: mode in which the I²C module will be set after the reading. Available modes : Value Description
_I2C_END_MODE_RESTART I²C bus will issue a restart.
_I2C_END_MODE_STOP I²C bus will issue a stop.
*/
tmp[0]=0x0E;
tmp[1]=0b01000000;
I2C1_Wr( DS3231_ADDR, tmp, 2, _I2C_END_MODE_STOP );
// clean table tmp
for (i=1;i<16;i++) tmp[i]=0;
if(RTC_Forcee==0) // RC0 input
{
UART1_Write_CText( "Init data RTC par defaut, avec RTC_Forcée=0 \r\n");
tmp[0]=0;
tmp[1]=0x50; //Reset second to 0 sec. and stop Oscillator
tmp[2]=0x59; //write min
tmp[3]=0x14; //write hour;
tmp[4]=0x02; ///write day of week
tmp[5]=0x20; // write date
tmp[6]=0x02; // write month
tmp[7]=0x19; // write year 2019
I2C1_Wr( DS3231_ADDR, tmp, 7, _I2C_END_MODE_STOP );
}
else
{
UART1_Write_CText(" Re-Lecture RTC ");
}
CRLF1();
do
{
// relecture RTC
tmp[0]=0 ;
I2C1_Wr( DS3231_ADDR, tmp, 1, _I2C_END_MODE_RESTART );
I2C1_Rd( DS3231_ADDR, tmp, 7, _I2C_END_MODE_STOP );
second=tmp[0];
minute=tmp[1];
heure=tmp[2];
jS=tmp[3];
if (jS>6) jS=0;
jour=tmp[4];
mois=tmp[5];
Annee=tmp[6];
// affichage data RTC
for (i=6;i>0;i--)
{
BCD_To_Ascii(tmp[i],CRam1);
UART1_Write_Text(CRam1);UART1_Write(TAB);
}
BCD_To_Ascii(tmp[0],CRam1);
UART1_Write_Text(CRam1);
CRLF1();
Delay_ms(1000);
}
while(1);
}
affichage
Init I2C1 HW
Init RTC DS3231
Active sortie SQW=1Hz:
Init data RTC par defaut, avec RTC_Forcée=0
19 02 20 02 14 59 50
19 02 20 02 14 59 51
19 02 20 02 14 59 52
19 02 20 02 14 59 53
19 02 20 02 14 59 54
19 02 20 02 14 59 55
19 02 20 02 14 59 56
19 02 20 02 14 59 57
19 02 20 02 14 59 58
19 02 20 02 14 59 59
19 02 20 02 15 00 00
19 02 20 02 15 00 01
19 02 20 02 15 00 02
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
Oui, merci pour ce retour d'information. C'est toujours utile
@++
@++
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
Transfert d'un programme 18F26K22 -> 18F27K42
apres les péripéties de l'I2C1 Hardware .. l' EEPROM
Encore une perte de temps, pour rechercher un bug dans mon programme .. pour rien
C'est encore le compilo qui bug
avec MPLAB IPE et Pickit4
au moment du chargement du *.hex (compilé avec MikroC)
message
le programme tourne quand meme , mais mes datas Eeeprom ne sont pas chargées..
réponse obtenue sur le site Microchip
dans le fichier Hex contenant le code ET l'eeprom
remplacer l'adresse de depart . ..et c'est ensuite OK avec MPLAB IPE
et mon programme peut enfin lire/ecrire dans l'eeprom
Transfert d'un programme 18F26K22 -> 18F27K42
apres les péripéties de l'I2C1 Hardware .. l' EEPROM
Encore une perte de temps, pour rechercher un bug dans mon programme .. pour rien
C'est encore le compilo qui bug
avec MPLAB IPE et Pickit4
au moment du chargement du *.hex (compilé avec MikroC)
message
2019-02-24 15:32:34 +0100 - Hex file loaded successfully.
Loading code from C:\_MikroC\_MesProjets_MikroC\_18F27K42\Horloge_6digits_18F27K42_DS3231_ULN_UDN_Melodie_60leds_for_AI2.hex...
Warning: C:\_MikroC\_MesProjets_MikroC\_18F27K42\Horloge_6digits_18F27K42_DS3231_ULN_UDN_Melodie_60leds_for_AI2.hex
contains code that is located at addresses that do not exist on the PIC18F27K42.
Code incompletely loaded.
2019-02-24 15:32:51 +0100 - Programming...
*****************************************************
Erasing...
The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x1ffff
configuration memory
EEData memory
User Id Memory
Programming/Verify complete
2019-02-24 15:33:23 +0100 - Programming complete
le programme tourne quand meme , mais mes datas Eeeprom ne sont pas chargées..
réponse obtenue sur le site Microchip
Re: Probleme with MLPAB IPE or other (18F27K42) ?
The error is correct. Your HEX file contains data at 0x01210000 which is out of thechip memory range,
and the same data seems to be in your EEPROM.iHex file.
If you want it to go to EEPROM (which is at 0x310000), try replacing this line from the HEX file:
:020000040121D8
with this:
:020000040031C9
dans le fichier Hex contenant le code ET l'eeprom
remplacer l'adresse de depart . ..et c'est ensuite OK avec MPLAB IPE
et mon programme peut enfin lire/ecrire dans l'eeprom
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
la suite ....
avec le LCD 2119 en I2C
Là encore , on jette tout et on recommence avec la nouvelle fonction I2C Hardware , à la sauce 18F27K42
je ne mets en direct que l'init LCD , pour montrer les differences d'usage de I2C Hardware
mais le fichier joint est complet.
nota : la version I2C SOFTWARE est inchangée (car methode BIT BANG)
nouvelle init LCD :
la suite ....
avec le LCD 2119 en I2C
Là encore , on jette tout et on recommence avec la nouvelle fonction I2C Hardware , à la sauce 18F27K42
je ne mets en direct que l'init LCD , pour montrer les differences d'usage de I2C Hardware
mais le fichier joint est complet.
nota : la version I2C SOFTWARE est inchangée (car methode BIT BANG)
nouvelle init LCD :
Code : Tout sélectionner
void LCD2119_Init(void)
{
// see datasheet PCF2119x NXP Semiconductors page 69
Delay_ms(500);
Buff_LCD[0]=0 ;
Buff_LCD[1]=0x00 ;
Buff_LCD[2]=0x24 ;
Buff_LCD[3]=0x0C ;
Buff_LCD[4]=0x06 ;
Buff_LCD[5]=0x25 ;
//10.2.3.2 Disp_conf
// inversion Haut/Bas Affichage par Q bit (fig 20) page 37 of 83
// Buff_LCD[6]=0x06 ; // Affichage Bas coté Connecteur
Buff_LCD[6]=0x05 ; // affichage Haut coté connecteur
Buff_LCD[7]=0x11 ;
Buff_LCD[8]=0x42 ;
Buff_LCD[9]=0x96 ;
Buff_LCD[10]=0x24 ;
Buff_LCD[11]=0x0C ;
Buff_LCD[12]=0x06 ;
Buff_LCD[13]=0x02 ;
Buff_LCD[14]=0x01 ;
I2C1_Wr( LCD_ADDR, Buff_LCD, 15, _I2C_END_MODE_STOP );
}
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
il semblerait bien que je sois le seul à utiliser ce PIC18F27K42 ... tres mal supporté par MikroC , Basic et PAscal
et qui est une VRAI USINE A GAZ ...
on est loin de la facilité offerte par le 18F26K22 !
Maintenant je bloque sur le PWM
la bibliotheque MikroC PWM ..ne genére pourtant pas d'erreur
je fais prealablement une commande directe sur ma sortie RC2 pour verifier/ allumer ma lampe 12V 25W (via un FET IRLZ14) .. OK
mais RIEN avec la commande PWM1
et bien sur AUCUN EXEMPLE pour ce PIC particulier.
or avec MPLABX on commence la config PMW à PWM5 ?
en attendant je vais basculer sur MPLABX ..pour voir
vraiment déçu par MikroC ..
de plus, ça vient de sortir , MikroE introduit la notion de SUPPORT PAYANT ! c'est le comble.
un avis, une aide serait bienvenue
je continue ici , avec ma maxime favorite
Aide toi .. tout seul !
ça marche en 8 bits
encore un probleme dû au PPS !
reste à tester en mode 10bits ...
il semblerait bien que je sois le seul à utiliser ce PIC18F27K42 ... tres mal supporté par MikroC , Basic et PAscal
et qui est une VRAI USINE A GAZ ...
on est loin de la facilité offerte par le 18F26K22 !
Maintenant je bloque sur le PWM
la bibliotheque MikroC PWM ..ne genére pourtant pas d'erreur
je fais prealablement une commande directe sur ma sortie RC2 pour verifier/ allumer ma lampe 12V 25W (via un FET IRLZ14) .. OK
mais RIEN avec la commande PWM1
et bien sur AUCUN EXEMPLE pour ce PIC particulier.
or avec MPLABX on commence la config PMW à PWM5 ?
en attendant je vais basculer sur MPLABX ..pour voir
vraiment déçu par MikroC ..
de plus, ça vient de sortir , MikroE introduit la notion de SUPPORT PAYANT ! c'est le comble.
un avis, une aide serait bienvenue
je continue ici , avec ma maxime favorite
Aide toi .. tout seul !
ça marche en 8 bits
encore un probleme dû au PPS !
Code : Tout sélectionner
Print_Cte_String(" Affectation (PPS) PIN RC2 à Sortie PWM1 \r\n");
Unlock_IOLOCK() ;
PPS_Mapping_NoLock(_CCP1, _OUTPUT, _RC2); // Sets pin RC2 to be PWM Output, and maps EUSART2 Asynchronous Transmit/Synchronous Clock Output to it
Lock_IOLOCK() ;
Print_Cte_String(" Init PWM1 8bits at 1000Hz on RC2 \r\n");
IRatio=128;
PWM1_Init(1000);
PWM1_Remappable_Init(1000);
PWM1_Remappable_Start();
PWM1_Set_Duty(IRatio);
reste à tester en mode 10bits ...
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour Paul,
Fantas-Pic t'aideras.......
J'avais également bien galerer avec les PPS .
Voici une fonction qui me permets de configurer le PPS sur un PIC18F47K40, tu pourrais essayer de t'en inspirer. La commande de verrouillage aps évidente.
Bon courage
Fantas-Pic t'aideras.......
J'avais également bien galerer avec les PPS .
Voici une fonction qui me permets de configurer le PPS sur un PIC18F47K40, tu pourrais essayer de t'en inspirer. La commande de verrouillage aps évidente.
Code : Tout sélectionner
//--------------------------------- PPS -------------------------------------
PPSLOCK = 0x55; // unlock PPS -
PPSLOCK = 0xAA;
PPSLOCKED_bit = 0;
RC6PPS = 0x09; // TX1 -> RC6
RX1PPS = 0x17; // RX1 <- RC7
RB5PPS = 0x0B; // TX2 -> RB5
RX2PPS = 0x0C; // RX2 <- RB4
PPSLOCK = 0x55; // lock PPS
PPSLOCK = 0xAA;
PPSLOCKED_bit = 1;
Bon courage
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
Avec mikroC ..pas moyen de gerer (pour l'instant) le mode PWM 10 bits
je suis donc retourné sur MPLABX IDE V 5.15 avec XC8
pour enfin arriver à un résultat , apres avoir mainte fois consulté la datasheet du PIC ,
malgre le soi disant MCC qui fait (PRESQUE) TOUT !
la gestion de FOSC n'est pas evidente sur ce PIC...
il a fallu que je modifie manuellement la config vitesse de l'UART1 USBRGH et USBRGL
pour les tests : ma base 18F + alimentée par la liaison UART (+5V USB) et connection ICSP au Pickit4
batterie de 12V + une lampe 12V 21W piloté par un MOSFET N IRLZ14 , via la sortie RC2 PMW5 en mode 10 bits.
0 à 100% 0 à 1023 !
PIC18F27K42 sur Base de Test
version 25-03-2019
Test PWM 10 bits -> RC2 - MOSFET -> Ampoule 12V 21W
UART1 19200,8,N,1 FOSC=Q 8MHz
PWM5 Initialisation
Test Delay_ms(10)
PWM=100
PWM=500
PWM=1000
PWM=50
Rampe UP : ................................
Rampe DOWN : ...............................
le main du programme ci dessous.
et le fameux mcc
je vais essayer de transposer pour usage avec MikroC ...
Avec mikroC ..pas moyen de gerer (pour l'instant) le mode PWM 10 bits
je suis donc retourné sur MPLABX IDE V 5.15 avec XC8
pour enfin arriver à un résultat , apres avoir mainte fois consulté la datasheet du PIC ,
malgre le soi disant MCC qui fait (PRESQUE) TOUT !
la gestion de FOSC n'est pas evidente sur ce PIC...
il a fallu que je modifie manuellement la config vitesse de l'UART1 USBRGH et USBRGL
pour les tests : ma base 18F + alimentée par la liaison UART (+5V USB) et connection ICSP au Pickit4
batterie de 12V + une lampe 12V 21W piloté par un MOSFET N IRLZ14 , via la sortie RC2 PMW5 en mode 10 bits.
0 à 100% 0 à 1023 !
PIC18F27K42 sur Base de Test
version 25-03-2019
Test PWM 10 bits -> RC2 - MOSFET -> Ampoule 12V 21W
UART1 19200,8,N,1 FOSC=Q 8MHz
PWM5 Initialisation
Test Delay_ms(10)
PWM=100
PWM=500
PWM=1000
PWM=50
Rampe UP : ................................
Rampe DOWN : ...............................
le main du programme ci dessous.
Code : Tout sélectionner
#include "mcc_generated_files/mcc.h"
#define Version "25-03-2019"
#define UP 1
#define DOWN 0
#define ON 0
#define OFF 1
unsigned char Buffer1[128];
unsigned char TEXTE[128];
unsigned char CRam1[48];
unsigned int i,j,k,m;
unsigned char c2,cx;
unsigned long L1;
float F1,F2;
unsigned int EAx;
void CRLF1(void);
void UART1_Write_Text( char *t1);
void UART1_Write_CText( const char *t1);
void Delay_ms(unsigned int V);
void Rampe(char sens);
void UART1_Write_Text( char *t1)
{
int k;
k=0;
while(*(t1++)>0)
{
if (k>80) break;
UART1_Write(*(t1));
k++;
}
}
void UART1_Write_CText( const char *t1)
{
int k;
k=0;
while(*(t1++)>0)
{
if (k>80) break;
UART1_Write(*(t1));
k++;
}
}
void CRLF1(void)
{
UART1_Write(13);
UART1_Write(10);
}
void Delay_ms(unsigned int V)
{ unsigned int j,k;
k=V;
while (k>1)
{
for (j=0;j<800;j++);
k--;
}
}
void Rampe(char sens)
{ int i;
switch (sens)
{
case 0:
for (i=1023;i>1;i--)
{
PWM5_LoadDutyValue(i);
if (i %32 ==0) UART1_Write('.');
Delay_ms(10);
}
break;
case 1:
for (i=0;i<1023;i++)
{
PWM5_LoadDutyValue(i);
if (i %32 ==0) UART1_Write('.');
Delay_ms(10);
}
break;
default:
PWM5_LoadDutyValue(0);
}
CRLF1();
Delay_ms(1000);
PWM5_LoadDutyValue(0);
}
void main(void)
{
// Initialize the device
SYSTEM_Initialize();
// If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
// If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global Interrupts
// Use the following macros to:
// Enable the Global Interrupts
//INTERRUPT_GlobalInterruptEnable();
// Disable the Global Interrupts
//INTERRUPT_GlobalInterruptDisable();
CRLF1();
UART1_Write_CText(" PIC18F27K42 sur Base de Test\r\n");
UART1_Write_CText(" version " Version"\r\n" );
UART1_Write_CText(" Test PWM 10 bits -> RC2 - MOSFET -> Ampoule 12V 21W\r\n");
UART1_Write_CText("\r\n UART1 19200,8,N,1 FOSC=Q 8MHz\r\n");
LATAbits.LATA4=OFF;
// CCP2CON=CCP2CON | 0x0C ; //PWM
UART1_Write_CText(" PWM5 Initialisation\r\n");
PWM5_Initialize();
UART1_Write_CText(" Test Delay_ms(10)\r\n");
Delay_ms(10);
UART1_Write_CText(" PWM=100\r\n");
PWM5_LoadDutyValue(100);
Delay_ms(1000);
UART1_Write_CText(" PWM=500\r\n");
PWM5_LoadDutyValue(500);
Delay_ms(1000);
UART1_Write_CText(" PWM=1000\r\n");
PWM5_LoadDutyValue(1000);
Delay_ms(1000);
UART1_Write_CText(" PWM=50\r\n");
PWM5_LoadDutyValue(50);
while (1)
{
LATAbits.LATA4=ON;
UART1_Write_CText(" Rampe UP : ");
Rampe(UP);
LATAbits.LATA4=OFF;
UART1_Write_CText(" Rampe DOWN : ");
Rampe(DOWN);
}
}
et le fameux mcc
Code : Tout sélectionner
#include "mcc.h"
void SYSTEM_Initialize(void)
{
INTERRUPT_Initialize();
PMD_Initialize();
PIN_MANAGER_Initialize();
OSCILLATOR_Initialize();
FVR_Initialize();
ADCC_Initialize();
TMR2_Initialize();
PWM5_Initialize();
UART1_Initialize();
}
void OSCILLATOR_Initialize(void)
{
// NOSC EXTOSC; NDIV 1;
OSCCON1 = 0x70;
// CSWHOLD may proceed; SOSCPWR Low power;
OSCCON3 = 0x00;
// MFOEN disabled; LFOEN disabled; ADOEN disabled; SOSCEN disabled; EXTOEN disabled; HFOEN disabled;
OSCEN = 0x00;
// HFFRQ 4_MHz;
OSCFRQ = 0x02;
// TUN 0;
OSCTUNE = 0x00;
}
void PMD_Initialize(void)
{
// CLKRMD CLKR enabled; SYSCMD SYSCLK enabled; SCANMD SCANNER enabled; FVRMD FVR enabled; IOCMD IOC enabled; CRCMD CRC enabled; HLVDMD HLVD enabled; NVMMD NVM enabled;
PMD0 = 0x00;
// NCO1MD DDS(NCO1) enabled; TMR0MD TMR0 enabled; TMR1MD TMR1 enabled; TMR4MD TMR4 enabled; TMR5MD TMR5 enabled; TMR2MD TMR2 enabled; TMR3MD TMR3 enabled; TMR6MD TMR6 enabled;
PMD1 = 0x00;
// ZCDMD ZCD enabled; DACMD DAC enabled; CMP1MD CMP1 enabled; ADCMD ADC enabled; CMP2MD CMP2 enabled;
PMD2 = 0x00;
// CCP2MD CCP2 enabled; CCP1MD CCP1 enabled; CCP4MD CCP4 enabled; CCP3MD CCP3 enabled; PWM6MD PWM6 enabled; PWM5MD PWM5 enabled; PWM8MD PWM8 enabled; PWM7MD PWM7 enabled;
PMD3 = 0x00;
// CWG3MD CWG3 enabled; CWG2MD CWG2 enabled; CWG1MD CWG1 enabled;
PMD4 = 0x00;
// U2MD UART2 enabled; U1MD UART1 enabled; SPI1MD SPI1 enabled; I2C2MD I2C2 enabled; I2C1MD I2C1 enabled;
PMD5 = 0x00;
// DSMMD DSM1 enabled; CLC3MD CLC3 enabled; CLC4MD CLC4 enabled; SMT1MD SMT1 enabled; CLC1MD CLC1 enabled; CLC2MD CLC2 enabled;
PMD6 = 0x00;
// DMA1MD DMA1 enabled; DMA2MD DMA2 enabled;
PMD7 = 0x00;
}
je vais essayer de transposer pour usage avec MikroC ...
MikroC Mixte avec Arduino avec les nouveaux PIC18FxxK42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
je viens à nouveau d'essuyer des platres avec une application basée sur un 18F27K42
apres avoir oublié de devalider l'usage de l'eeprom du PIC
qui n'etait pas utilisée dans cette application du moment
j'utilise MPLAB IPE V5.15 + Pickit4 pour programmer ce PIC
et obtiens ce message
incomplet mais successfull ?????
neamoins il se charge et tourne OK ..
je me rappelle alors mes deboires avec l'EEPROM
=> donc modifie manuellement l'adresse de depart du fichier Eeeprom ( *.iHEX)
la 1ere ligne doit etre : 020000040031C9 soit 3100 H
une recompilation ,apres coup, donne un message SANS avertissement
et une duree de programmation bien plus longue .. car fin=0x1ffff au lieu de 0x44ff
30 secondes au lieu de 13 secondes..
rappel : ce MCU a 128KB de flash et 8192 bytes de RAM !
probleme résolu MANUELLEMENT
mais pas grace à la nouvelle version MikroC 7.6.0
BUG qui date de JAnvier 2019 !
je viens à nouveau d'essuyer des platres avec une application basée sur un 18F27K42
apres avoir oublié de devalider l'usage de l'eeprom du PIC
qui n'etait pas utilisée dans cette application du moment
j'utilise MPLAB IPE V5.15 + Pickit4 pour programmer ce PIC
et obtiens ce message
Loading code from C:\_MikroC\_MesProjets_MikroC\_Horloge_Anneau_60leds_18F27K42\Horloge_PIC18F27K42_Anneau_60leds_4_Reverse_Matrices_Max7219_191027.hex...
Warning: C:\_MikroC\_MesProjets_MikroC\_Horloge_Anneau_60leds_18F27K42\Horloge_PIC18F27K42_Anneau_60leds_4_Reverse_Matrices_Max7219_191027.hex contains code that is located at addresses that do not exist on the PIC18F27K42.
Code incompletely loaded.
2019-10-28 15:56:42 +0100 - Hex file(s) loaded successfully.
2019-10-28 15:56:45 +0100 - Programming..
incomplet mais successfull ?????
2019-10-28 16:33:46 +0100 - Programming...
Erasing...
The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x44ff
configuration memory
User Id Memory
Programming/Verify complete
2019-10-28 15:56:58 +0100 - Programming complete
neamoins il se charge et tourne OK ..
je me rappelle alors mes deboires avec l'EEPROM
=> donc modifie manuellement l'adresse de depart du fichier Eeeprom ( *.iHEX)
la 1ere ligne doit etre : 020000040031C9 soit 3100 H
une recompilation ,apres coup, donne un message SANS avertissement
et une duree de programmation bien plus longue .. car fin=0x1ffff au lieu de 0x44ff
30 secondes au lieu de 13 secondes..
rappel : ce MCU a 128KB de flash et 8192 bytes de RAM !
The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x1ffff
configuration memory
EEData memory
User Id Memory
Programming/Verify complete
2019-10-28 17:03:38 +0100 - Programming complete
probleme résolu MANUELLEMENT
mais pas grace à la nouvelle version MikroC 7.6.0
BUG qui date de JAnvier 2019 !
Qui est en ligne
Utilisateurs parcourant ce forum : paulfjujo et 137 invités