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
OLED GC9A01 et SPI Hardw 18F27K42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
A chaque jour suffit sa peine ...
si SPI SCLK =8Mhz
1 bit -> 125nS
8 clock pour 1 byte => 125nS * 8= 1000nS => 1µS
=> 1 000 000 bytes en 1sec
ou 1000 bytes / mS
pour effacer l'écran il faut envoyer 115200 bytes ( 240x240 pixels et couleur 16 bits)
donc 115200/ 1000 => 115.2 mS
or je trouve :
il y a ici une incohérence ou un meli mélo de neurones..
je verifie alors avec un coup d'oscillo (Tektro TDS2002C 1Gs/s 70MHz !)
j'ai bien un signal SPI SCLCK sur RC3 à 8Mhz !
periode mesuré : 126 ns
amplitude de 3,36V cr cr (alim MCU =3,5V)
Nota: l'ecran s'efface bien en Noir
testé aussi avec couleur SendData(0x55);SendData(0x55); .. efface avec un joli gris bleu
une idée ?
Où est-ce que je me fourvoie ?
A chaque jour suffit sa peine ...
si SPI SCLK =8Mhz
1 bit -> 125nS
8 clock pour 1 byte => 125nS * 8= 1000nS => 1µS
=> 1 000 000 bytes en 1sec
ou 1000 bytes / mS
pour effacer l'écran il faut envoyer 115200 bytes ( 240x240 pixels et couleur 16 bits)
Code : Tout sélectionner
void Ecran_Noir(void)
{ Word i;
SendCmd(0x2A);
SendData(0);SendData(0); SendData(0);SendData(0xEF);
SendCmd(0x2B); SendData(0);SendData(0); SendData(0);SendData(0xEF);
SendCmd(0x2C); for (i=0;i<57600;i++) { SendData(0);SendData(0);}
donc 115200/ 1000 => 115.2 mS
or je trouve :
Code : Tout sélectionner
CPrint(" Test duree Ecran Noir (SPI 8MHz!) \r\n");
Start_SMT1();
Ecran_Noir();
Stop_SMT1();
resultat sur terminal:
(17:26:01.821) Test duree Ecran Noir (SPI 8MHz!)
(17:26:02.121) Stop. SMT1=1886824 ,soit 29481 uS <----- soit 29,4mS
il y a ici une incohérence ou un meli mélo de neurones..
je verifie alors avec un coup d'oscillo (Tektro TDS2002C 1Gs/s 70MHz !)
j'ai bien un signal SPI SCLCK sur RC3 à 8Mhz !
periode mesuré : 126 ns
amplitude de 3,36V cr cr (alim MCU =3,5V)
Nota: l'ecran s'efface bien en Noir
testé aussi avec couleur SendData(0x55);SendData(0x55); .. efface avec un joli gris bleu
une idée ?
Où est-ce que je me fourvoie ?
OLED GC9A01 et SPI Hardw 18F27K42
Bonjour,
Tu fais une boucle de 260 effacements, si ça dure 30 secondes, le module de mesure du pic se trompe.
Si cela dure 8 secondes, cela confirme que le pic se prépare pour les jeux olympiques.
Les modules SPI et SMT utilisent-ils la même source d'horloge ?
L'oscillo indique combien pour la durée totale de l'effacement ?
Tu fais une boucle de 260 effacements, si ça dure 30 secondes, le module de mesure du pic se trompe.
Si cela dure 8 secondes, cela confirme que le pic se prépare pour les jeux olympiques.
Les modules SPI et SMT utilisent-ils la même source d'horloge ?
L'oscillo indique combien pour la durée totale de l'effacement ?
Modifié en dernier par satinas le lun. 20 mars 2023 18:33, modifié 1 fois.
OLED GC9A01 et SPI Hardw 18F27K42
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
OLED GC9A01 et SPI Hardw 18F27K42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
A chaque fois que tu m'interpelles, ça fait remonter des problemes déja vécus
merçi Satinas...
en particulier le débordement SMT1 !
j'ai donc rajouté 2 tests , apres le 1er à 50mS
250mS et un 3em avec 350mS...
(18:28:11.651) Init et Test Compteur 24 bits SMT1 sur FOSC 64MHz
(18:28:11.651) Mesure SMT1 pour __delay_ms(50);
(18:28:11.681) Stop. SMT1=3200024 ,soit 50000 uS <--- OK
(18:28:11.700)
(18:28:11.700) Mesure SMT1 pour __delay_ms(250);
(18:28:11.942) Stop. SMT1=16000024 ,soit 250000 uS <--- OK
(18:28:11.956)
(18:28:16.326)
(18:28:16.326) Mesure SMT1 pour __delay_ms(350); <-- BAD
(18:28:16.677) Stop. SMT1=5622808 ,soit 87856 uS
(18:28:16.688)
CPrint(" Mesure SMT1 pour __delay_ms(350);\r\n");
Start_SMT1();
__delay_ms(350);
Stop_SMT1();
=> modif prescaler dans l' init SMT1
j'etais à PS[1:0]: SMT Prescale Select bits 1/1 => passé à 1/2
ou gerer le flag debordement comme dans Frequencemetre à base de SMT1
à suivre ...
merçi Satinas...
en particulier le débordement SMT1 !
j'ai donc rajouté 2 tests , apres le 1er à 50mS
250mS et un 3em avec 350mS...
(18:28:11.651) Init et Test Compteur 24 bits SMT1 sur FOSC 64MHz
(18:28:11.651) Mesure SMT1 pour __delay_ms(50);
(18:28:11.681) Stop. SMT1=3200024 ,soit 50000 uS <--- OK
(18:28:11.700)
(18:28:11.700) Mesure SMT1 pour __delay_ms(250);
(18:28:11.942) Stop. SMT1=16000024 ,soit 250000 uS <--- OK
(18:28:11.956)
(18:28:16.326)
(18:28:16.326) Mesure SMT1 pour __delay_ms(350); <-- BAD
(18:28:16.677) Stop. SMT1=5622808 ,soit 87856 uS
(18:28:16.688)
CPrint(" Mesure SMT1 pour __delay_ms(350);\r\n");
Start_SMT1();
__delay_ms(350);
Stop_SMT1();
=> modif prescaler dans l' init SMT1
j'etais à PS[1:0]: SMT Prescale Select bits 1/1 => passé à 1/2
ou gerer le flag debordement comme dans Frequencemetre à base de SMT1
à suivre ...
OLED GC9A01 et SPI Hardw 18F27K42
J'ai pas utilisé le module SMT. Si c'est un compteur 24 bits avec retour à 0 sur débordement, en stockant les valeurs du compteur dans des uint24_t, pour calculer une durée :
duree = (Ustop - Ustart) * durée_cycle_compteur
Formule restant valable s'il y a eu un seul débordement et Ustop n'a pas rattrapé Ustart, sinon il faut faire en plus:
duree += (Nb_Débordement - (Ustop < Ustart)) * 0x1000000 * durée_cycle_compteur
C'est bien sûr plus simple de remettre à zéro le compteur à chaque début de mesure. En le faisant tourner en permanence on a le temps de fonctionnement du pic depuis le reset, avec un unsigned 32 bit auquel on ajoute 0x1000000 à chaque débordement SMT. On peut alors mesurer une durée avec des valeurs 32 bits.
duree = (Ustop - Ustart) * durée_cycle_compteur
Formule restant valable s'il y a eu un seul débordement et Ustop n'a pas rattrapé Ustart, sinon il faut faire en plus:
duree += (Nb_Débordement - (Ustop < Ustart)) * 0x1000000 * durée_cycle_compteur
C'est bien sûr plus simple de remettre à zéro le compteur à chaque début de mesure. En le faisant tourner en permanence on a le temps de fonctionnement du pic depuis le reset, avec un unsigned 32 bit auquel on ajoute 0x1000000 à chaque débordement SMT. On peut alors mesurer une durée avec des valeurs 32 bits.
OLED GC9A01 et SPI Hardw 18F27K42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
In fine, j'ai modifié la source horloge 64MHz -> FOSC/4=16MHz pour le timer SMT1
c'est moins precis, mais la gamme de mesure est largement etendue ... testé à 1sec (sans debordement!)
( ou 2sec avec débordement)..
au dela ..le chrono Stamp de YAT terminal est suffisant ..
rajouté la detection de debordement via le flag SMT1IF ..
on pourrait traité LES debordements via l'interrupt associée pour les cumuler
mais une precision de +- 62,5nS est inutile au delà de quelques mS
à 16MHz on est quand meme à +-0,25 µS
resultats YAT terminal
(08:38:00.377) Init et Test Compteur 24 bits SMT1 CLOCK sur 16MHz
(08:38:00.377) Mesure SMT1 pour __delay_ms(50);
(08:38:00.426) Stop. SMT1=800006 ,soit 50000 uS <-- OK
(08:38:00.448)
(08:38:00.448) Mesure SMT1 pour __delay_ms(350);
(08:38:00.787) Stop. SMT1=5600006 ,soit 350000 uS <--- OK
(08:38:00.820)
(08:38:00.820) Mesure SMT1 pour __delay_ms(1000);
(08:38:01.798) Stop. SMT1=16000006 ,soit 1000000 uS <-- verif OK à 1sec.
(08:38:01.837)
(08:38:01.837) My_Init SPI1
(08:38:01.837) TEST signaux SCLK et MOSI SPI Hardware avec SQA analyser (RA3=Synchro capture)
(08:38:01.837) SPI HARDW Sequence : 0x01 0x10 0X20 0x40 0x80 0xAA 0x0F 0x55 0xF0
(08:38:01.837) Armer la capture dans 3 sec !
(08:38:04.816)
(08:38:04.816) Init OLED Rond CG9A01
(08:38:04.849) Start SMT1 pour Init_CG9A01();
(08:38:05.599) Stop. SMT1=12401421 ,soit 775088 uS <--- 775mS
(08:38:05.609)
(08:38:05.609) fin d'init LCD
(08:38:05.609)
(08:38:05.609) Clear_LCD()
(08:38:05.902)
(08:38:05.902) Test duree Ecran Noir (SPI 8MHz!)
(08:38:06.197) Stop. SMT1=4666010 ,soit 291625 uS <-- 292mS
(08:38:06.232)
(08:38:06.232)
(08:38:06.232) Ecran Noir
(08:38:06.495) Rectangles Pleins Vert, Beige
(08:38:09.414) Rectangles Pleins Bleu,Blanc,Rouge
(08:38:11.538) put 8 big pixels
(08:38:13.537) Affichage voltmetre.bmp 240x240 65K couleurs .. OK
(08:38:13.554) Image datas organisee en 2 tables de 57600 Bytes
(08:38:13.554) partie 1 lignes 0 a 119
(08:38:13.554) puis partie 2 lignes 120 a 232
(08:38:13.602) Start chrono SQA dans 3 sec
(08:38:16.547)
(08:38:16.547) Test Duree de Chargement image Voltmetre.bmp <--- 395mS
(08:38:16.950) Stop. SMT1=6321619 ,soit 395101 uS
(08:38:16.995)
(08:38:16.995)
(08:38:16.995) ..fin Affichage Image voltmetre
(08:47:46.114) Mesure SMT1 pour __delay_ms(2000);
(08:47:48.107) Over !
(08:47:48.154) Stop. SMT1=32000006 ,soit 2000000 uS <-- 2 sec (avec debordement détecté)
In fine, j'ai modifié la source horloge 64MHz -> FOSC/4=16MHz pour le timer SMT1
c'est moins precis, mais la gamme de mesure est largement etendue ... testé à 1sec (sans debordement!)
( ou 2sec avec débordement)..
au dela ..le chrono Stamp de YAT terminal est suffisant ..
rajouté la detection de debordement via le flag SMT1IF ..
on pourrait traité LES debordements via l'interrupt associée pour les cumuler
mais une precision de +- 62,5nS est inutile au delà de quelques mS
à 16MHz on est quand meme à +-0,25 µS
Code : Tout sélectionner
void SMT1_Init(void)
{
//04-04-2021 rev 21-03-2023
// registre SMT1CON0
SMT1CON0bits.SMT1EN =1; // SMT enabled
SMT1CON0bits.WPOL=0; // Window Polarity
SMT1CON0bits.SPOL=0; // Signal Polarity
SMT1CON0bits.CPOL=0; // Clock Polarity
// prescaler pour Compteur only, ne pas valider pour timer
SMT1CON0bits.SMT1PS1=0; // PS<1:0>: SMT Prescale Select bits = 1/1
SMT1CON0bits.SMT1PS0=0; // 11=1/8 10=1/4 01=1/2 00=1/1
SMT1CON0bits.SMT1EN =1; // SMT enabled
SMT1CON0bits.SMT1STP=0; // 0 =reset 1=STOP;
SMT1CON1bits.SMT1GO=0; // 1= suit l'entree 0=stop suivi
SMT1CON1bits.SMT1REPEAT=0; // 0= Single Acquisition 1=repeat mode
// REGISTER 25-4: SMT1CLK: SMT CLOCK SELECTION REGISTER 16MHz
// 000=FOSC/4 001=FOSC 010=HINTOSC 16MHz 100=MFINTOSC 500Khz
// 500KZ => resolution +-2µS
// SMT1CLKbits.CSEL2= 1;
// SMT1CLKbits.CSEL1= 0; //was 001
// SMT1CLKbits.CSEL0= 0;
// 64MHZ
//SMT1CLKbits.CSEL2= 0;
//SMT1CLKbits.CSEL1= 0;
//SMT1CLKbits.CSEL0= 1;
// FOSC/4 =16MHZ
SMT1CLKbits.CSEL2= 0;
SMT1CLKbits.CSEL1= 0;
SMT1CLKbits.CSEL0= 0;
// 25.7.1 PW (Pulse Width) AND PR (Periode Read) ACQUISITIONI NTERRUPTS
PIR1bits.SMT1PRAIF=0;
PIE1bits.SMT1PRAIE=0;
// 25.7.2 PERIOD MATCHI NTERRUPT
PIR1bits.SMT1IF=0;
PIE1bits.SMT1IE=0;
// init compteur
SMT1PRU=0xFF;
SMT1PRH=0xFF;
SMT1PRL=0xFF;
// MODE de fonctionnement TIMER page 396
// 0000=Timer 0100=windowed measure 1000=counter
//SMT1CON1=0;
SMT1CON1bits.MODE3=0;
SMT1CON1bits.MODE2=0;
SMT1CON1bits.MODE1=0;
SMT1CON1bits.MODE0=0;
}
void Start_SMT1()
{ txt=&TEXTE[0];
SMT1_Measure=0;
//PIR1 SMT1PWAIF SMT1PRAIF SMT1IF C1IF ADTIF ADIF ZCDIF INT0IF 138
PIR1bits.SMT1IF=0;
SMT1CON0bits.SMT1STP=0;
SMT1STATbits.RST=1; // init FFFFFF
SMT1CON1bits.SMT1GO=1;
}
void Stop_SMT1()
{
SMT1CON1bits.SMT1GO=0;
*(ST)= SMT1TMRL;
*(ST+1)=SMT1TMRH;
*(ST+2)=SMT1TMRU;
*(ST+3)=0;
if (PIR1bits.SMT1IF==1)
{
CPrint("\r\n Over !\r\n");
SMT1_Measure=SMT1_Measure+0x1000000;
}
PIR1bits.SMT1IF=0 ;
sprintf(txt, " Stop. SMT1=%lu ,soit ",SMT1_Measure);
Print(txt);
// pour fosc 500Khz
//L1= SMT1_Measure <<1 ; // *2
//pour FOSC=64MHz
//L1= SMT1_Measure >>6 ; //64
//pour FOSC=16MHz
L1= SMT1_Measure >>4 ; //16
sprintf(txt, "%lu uS\r\n",L1);
Print(txt);
CRLF1();
}
resultats YAT terminal
(08:38:00.377) Init et Test Compteur 24 bits SMT1 CLOCK sur 16MHz
(08:38:00.377) Mesure SMT1 pour __delay_ms(50);
(08:38:00.426) Stop. SMT1=800006 ,soit 50000 uS <-- OK
(08:38:00.448)
(08:38:00.448) Mesure SMT1 pour __delay_ms(350);
(08:38:00.787) Stop. SMT1=5600006 ,soit 350000 uS <--- OK
(08:38:00.820)
(08:38:00.820) Mesure SMT1 pour __delay_ms(1000);
(08:38:01.798) Stop. SMT1=16000006 ,soit 1000000 uS <-- verif OK à 1sec.
(08:38:01.837)
(08:38:01.837) My_Init SPI1
(08:38:01.837) TEST signaux SCLK et MOSI SPI Hardware avec SQA analyser (RA3=Synchro capture)
(08:38:01.837) SPI HARDW Sequence : 0x01 0x10 0X20 0x40 0x80 0xAA 0x0F 0x55 0xF0
(08:38:01.837) Armer la capture dans 3 sec !
(08:38:04.816)
(08:38:04.816) Init OLED Rond CG9A01
(08:38:04.849) Start SMT1 pour Init_CG9A01();
(08:38:05.599) Stop. SMT1=12401421 ,soit 775088 uS <--- 775mS
(08:38:05.609)
(08:38:05.609) fin d'init LCD
(08:38:05.609)
(08:38:05.609) Clear_LCD()
(08:38:05.902)
(08:38:05.902) Test duree Ecran Noir (SPI 8MHz!)
(08:38:06.197) Stop. SMT1=4666010 ,soit 291625 uS <-- 292mS
(08:38:06.232)
(08:38:06.232)
(08:38:06.232) Ecran Noir
(08:38:06.495) Rectangles Pleins Vert, Beige
(08:38:09.414) Rectangles Pleins Bleu,Blanc,Rouge
(08:38:11.538) put 8 big pixels
(08:38:13.537) Affichage voltmetre.bmp 240x240 65K couleurs .. OK
(08:38:13.554) Image datas organisee en 2 tables de 57600 Bytes
(08:38:13.554) partie 1 lignes 0 a 119
(08:38:13.554) puis partie 2 lignes 120 a 232
(08:38:13.602) Start chrono SQA dans 3 sec
(08:38:16.547)
(08:38:16.547) Test Duree de Chargement image Voltmetre.bmp <--- 395mS
(08:38:16.950) Stop. SMT1=6321619 ,soit 395101 uS
(08:38:16.995)
(08:38:16.995)
(08:38:16.995) ..fin Affichage Image voltmetre
(08:47:46.114) Mesure SMT1 pour __delay_ms(2000);
(08:47:48.107) Over !
(08:47:48.154) Stop. SMT1=32000006 ,soit 2000000 uS <-- 2 sec (avec debordement détecté)
OLED GC9A01 et SPI Hardw 18F27K42
Bonjour,
Dans le fichier header du pic, il y a
Donc tu peux faire, si cela passe selon paramétrage xc8
Cela simplifie le code C, le code asm reste le même.
Dans le fichier header du pic, il y a
Code : Tout sélectionner
extern volatile __uint24 SMT1TMR __at(0x3F12);
Donc tu peux faire, si cela passe selon paramétrage xc8
Code : Tout sélectionner
unsigned long L = SMT1TMR;
Cela simplifie le code C, le code asm reste le même.
OLED GC9A01 et SPI Hardw 18F27K42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
j' obtiens !
main.c:95:19: error: initializer element is not a compile-time constant
unsigned long L = SMT1TMR;
donc j'ai gardé ma variable
static uint32_t SMT1_Measure=0;
que je peux utiliser
SMT1_Measure=SMT1TMR;
à la place de:
// *(ST)= SMT1TMRL;
// *(ST+1)=SMT1TMRH;
// *(ST+2)=SMT1TMRU;
// *(ST+3)=0;
c'est effectivement un peu plus "élegant"
main.c:95:19: error: initializer element is not a compile-time constant
unsigned long L = SMT1TMR;
donc j'ai gardé ma variable
static uint32_t SMT1_Measure=0;
que je peux utiliser
SMT1_Measure=SMT1TMR;
à la place de:
// *(ST)= SMT1TMRL;
// *(ST+1)=SMT1TMRH;
// *(ST+2)=SMT1TMRU;
// *(ST+3)=0;
c'est effectivement un peu plus "élegant"
OLED GC9A01 et SPI Hardw 18F27K42
unsigned long L = SMT1TMR;
Cela passe si on le met dans le main ou dans une fonction, car c'est le code compilé. Dans le cas d'une variable globale ou statique, c'est du pré-code d'initialisation qui ne veut que des constantes, le main n'a pas encore démarré.
C'est peut être plus court en asm car il sait qu'il initialise 4 octets consécutifs.
Cela passe si on le met dans le main ou dans une fonction, car c'est le code compilé. Dans le cas d'une variable globale ou statique, c'est du pré-code d'initialisation qui ne veut que des constantes, le main n'a pas encore démarré.
C'est peut être plus court en asm car il sait qu'il initialise 4 octets consécutifs.
OLED GC9A01 et SPI Hardw 18F27K42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
voir test à 16MHz coté ASM ....
OSONS!
init SPI clock à 32MHZ
verif à l'oscillo ..periode 31,2nS 32,05MHz
le clock parait plutot sinusoidal ... mais mon oscillo n'à que 1GS/sec et 70MHz de bande passante
SPI1CLK = 0; // CLKREF =0 ->FOSC=64MHz
SPI1BAUD = 0; // SPI Speed 64MHz / (2x(0+1)) = 64/2 = 32MHz
ne pas oublier : inhibition du Slow Rate
SLRCONC=0;
SLRCONB=0;
surprise ... L'OLED arrive à suivre ..
malgré un montage sur breadboard et filerie de 8cm entre MCU et OLED
(on ne parle pas ici de probleme CEM!)
(09:11:59.855) Init OLED Rond CG9A01
(09:11:59.906) Start SMT1 pour Init_CG9A01();
(09:12:00.637) Stop. SMT1=12400952 ,soit 775059 uS .... inchangé 775mS
voir explication coté ASM
(09:12:00.852) Test duree Ecran Noir (SPI 8MHz!)
(09:12:01.064) Stop. SMT1=3283477 ,soit 205217 uS ..... 205mS( 292mS at 8MHz)
(09:12:09.247) Test Duree de Chargement image Voltmetre.bmp
(09:12:09.548) Stop. SMT1=4939218 ,soit 308701 uS .... 308mS ( 395ms at 8MHz)
(09:12:09.558)
(09:12:09.558)
(09:12:09.558) ..fin Affichage Image voltmetre
OSONS!
init SPI clock à 32MHZ
verif à l'oscillo ..periode 31,2nS 32,05MHz
le clock parait plutot sinusoidal ... mais mon oscillo n'à que 1GS/sec et 70MHz de bande passante
SPI1CLK = 0; // CLKREF =0 ->FOSC=64MHz
SPI1BAUD = 0; // SPI Speed 64MHz / (2x(0+1)) = 64/2 = 32MHz
ne pas oublier : inhibition du Slow Rate
SLRCONC=0;
SLRCONB=0;
surprise ... L'OLED arrive à suivre ..
malgré un montage sur breadboard et filerie de 8cm entre MCU et OLED
(on ne parle pas ici de probleme CEM!)
(09:11:59.855) Init OLED Rond CG9A01
(09:11:59.906) Start SMT1 pour Init_CG9A01();
(09:12:00.637) Stop. SMT1=12400952 ,soit 775059 uS .... inchangé 775mS
voir explication coté ASM
(09:12:00.852) Test duree Ecran Noir (SPI 8MHz!)
(09:12:01.064) Stop. SMT1=3283477 ,soit 205217 uS ..... 205mS( 292mS at 8MHz)
(09:12:09.247) Test Duree de Chargement image Voltmetre.bmp
(09:12:09.548) Stop. SMT1=4939218 ,soit 308701 uS .... 308mS ( 395ms at 8MHz)
(09:12:09.558)
(09:12:09.558)
(09:12:09.558) ..fin Affichage Image voltmetre
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 52 invités