Problème de programation d'un PIC16F877a avec un LCD 2*16 en mode 8 Bits
UltimateXion
Messages postés4Date d'inscriptionmardi 24 mars 2009StatutMembreDernière intervention30 mai 2009
-
20 mai 2009 à 21:13
pont
Messages postés198Date d'inscriptionsamedi 2 mai 2009StatutMembreDernière intervention16 novembre 2010
-
30 mai 2009 à 09:48
Bonjours à tous, je réalise actuellement mon projet de BTS Système
électronique et j'ai comme qui dirai un souci au niveau de mon
programme en source assembleur. Mon objectif étant, d'écrire Bienvenue
au lycee Baggio sur un afficheur LCD 2*16 en mode 8 bits avec un
PIC16F877a et un quartz de 4 Mhz. Je vous laisse regarder mon programme
en ésperant que vous trouverez d'ou vien le problème. Pour ce qui est
du câblage entre le PIC et le LCD tout est indiqué au début du
programme. Je vous remercis d'avance et bon courage .
;*****************************************************************************************************
; *
; Test LCD sur un 16F877A - 4 Mhz *
; *
;*****************************************************************************************************
; *
; Files required: p16F877a.inc *
; *
;*****************************************************************************************************
list p=16F877a ;list directive to define processor
#include ;processor specific variable definitions
CBLOCK 0x020
LECTURE : 1
ECRITURE : 1
ENDC
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
;Pas de code protege, pas de watch hdog timer, delai de demarrage, horloge HS.
; Brochage du PIC sur la carte :
;
; Port | Broche | E/S | Nom | Description
; RA2 | 4 | S | E | Sortie broche Enable du LCD
; RA1 | 3 | S | R/W | Sortie Broche Read/write du LCD
; RA0 | 2 | S | RS | Sortie Broche RS du LCD
; RD0 | 19 | S | D0 | Sortie bit 0 du LCD
; RD1 | 20 | S | D1 | Sortie bit 1 du LCD
; RD2 | 21 | S | D2 | Sortie bit 2 du LCD
; RD3 | 22 | S | D3 | Sortie bit 3 du LCD
; RD4 | 27 | S | D4 | Sortie bit 4 du LCD
; RD5 | 28 | S | D5 | Sortie bit 5 du LCD
; RD6 | 29 | S | D6 | Sortie bit 6 du LCD
; RD7 | 30 | S | D7 | Sortie bit 7 du LCD
LCD_DATA ; LCD: Port ou est branche le bus de donnee ( bits 0 à 7 )
LCD_E ; LCD: Ligne de commande de controle de l'afficheur
LCD_RW ; LCD: Ligne de Lecture/Ecriture de l'afficheur
LCD_RS ; LCD: Ligne de selection de l'afficheur
;***** Variable de temporisation
tempo50micro EQU 0x20 ;Variable tempo 50 µs
tempo10ms EQU 0x21 ;Variable tempo 10 ms
tempo1s EQU 0x22 ;Variable tempo 1s
;***** LCD Var
LCD_TEMP EQU 0x23 ;Variable temporaire pour le LCD
LCD_l0 macro A
movlw A
iorlw B'10000000'
call LCD_send
endm
LCD_l1 macro A
movlw A
iorlw B'11000000'
call LCD_send
endm
;********************************************************************************************** DEBUT
ORG 0x000 ;processor reset vector
GOTO main ;go to beginning of program
;****************************************************************************************************
; *
; Programme Main *
; *
;****************************************************************************************************
main
;initialisation des ports
movlw B'00000101' ;Write, RS a 1, Enable a 1
movwf LECTURE
movlw B'00000100' ;Write, RS a 0, Enable a 1
movwf ECRITURE
bcf STATUS,RP0 ;pointer en BANK0
bcf STATUS,RP1
clrf PORTD ;mettre les futures sorties à l'état bas
clrf PORTA
bsf STATUS,RP0 ;pointer en BANK1
clrf PORTD ;PORTD en sortie
clrf PORTA ;PORTB en sortie
bcf STATUS,RP0 ;pointer en BANK0
nop ;un peu de temps laisser au PIC
;initialisation du LCD
movlw B'00111100' ;0 0 1 DL N F x x : DL=0(4ports)/1(8ports), N=0(1ligne)/1(2lignes), F=font
call LCD_send
movlw B'00001110' ;0 0 0 0 1 D C B : D=Display=1(on)/0(off) C=curseur B=blinking
call LCD_send
movlw B'00000001' ;effacer l'écran et retour du curseur à la position 0
call LCD_send
movlw B'00000110' ;0 0 0 0 0 1 1/D S : 1/D=(1)incrémente le curseur après écriture S=(1)display is shifted
call LCD_send
boucle
LCD_l0 D'2' ;pointer au caractère 2 de la première ligne
movlw "B" ;écrire "B"
call LCD_sendRS
movlw "i"
call LCD_sendRS
movlw "e"
call LCD_sendRS
movlw "n"
call LCD_sendRS
movlw "v"
call LCD_sendRS
movlw "e"
call LCD_sendRS
movlw "n"
call LCD_sendRS
movlw "u"
call LCD_sendRS
movlw "e"
call LCD_sendRS
movlw " "
call LCD_sendRS
movlw "a"
call LCD_sendRS
movlw "u"
call LCD_sendRS
CALL Wait1s
LCD_l1 D'2' ;pointer au caractère 3 de la deuxieme ligne
movlw "l" ;écrire "l"
call LCD_sendRS
movlw "y"
call LCD_sendRS
movlw "c"
call LCD_sendRS
movlw "e"
call LCD_sendRS
movlw "e"
call LCD_sendRS
movlw " "
call LCD_sendRS
movlw "B"
call LCD_sendRS
movlw "a"
call LCD_sendRS
movlw "g"
call LCD_sendRS
movlw "g"
call LCD_sendRS
movlw "i"
call LCD_sendRS
movlw "o"
call LCD_sendRS
CALL Wait1s
GOTO boucle ;boucle
;*****************************************************************************************************
; *
; Les pauses a 4Mhz *
; *
;*****************************************************************************************************
;***** Attente de 1 s (exactement 1.00204 s)
Wait1s
MOVLW D'99' ; 99 fois
MOVWF tempo1s ;stockage dans la variable tempo1s
T1sboucle CALL Wait10ms
DECFSZ tempo1s,1 ;décremente et test
GOTO T1sboucle ;on boucle tant que <>0
RETURN
;***** Attente de 15 ms (exactement 14.99 ms)
Wait15ms
MOVLW D'149' ; 149 fois
MOVWF tempo10ms ;stockage dans la variable tempo10ms
T15msboucle CALL Wait100micros
DECFSZ tempo10ms,1 ;décremente et test
GOTO T15msboucle ;on boucle tant que <>0
RETURN
;***** Attente de 10 ms (exactement 10.02 ms)
Wait10ms
MOVLW D'198' ; 198 fois
MOVWF tempo10ms ;stockage dans la variable tempo10ms
T10msboucle CALL Wait50micros
DECFSZ tempo10ms,1 ;décremente et test
GOTO T10msboucle ;on boucle tant que <>0
RETURN
;***** Attente de 1.5 ms (exactement ? ms)
Wait1.5ms
MOVLW D'29' ; 29 fois
MOVWF tempo10ms ;stockage dans la variable tempo10ms
T1.5msboucle CALL Wait50micros
DECFSZ tempo10ms,1 ;décremente et test
GOTO T1.5msboucle ;on boucle tant que <>0
RETURN
;***** Attente de 100 µs (exactement, en comptant le temps d'appel)
Wait100micros
MOVLW D'165' ; 165 fois
MOVWF tempo50micro ;stockage dans la variable tempo50µ
T100microsboucle DECFSZ tempo50micro,1 ;décremente et test
GOTO T100microsboucle ;on boucle tant que <>0 0.2*3=0.6 µs en tout
RETURN
;***** Attente de 50 µs (exactement, en comptant le temps d'appel)
Wait50micros NOP
NOP
MOVLW D'81' ; 81 fois
MOVWF tempo50micro ;stockage dans la variable tempo50µ
T50microsboucle DECFSZ tempo50micro,1 ;décremente et test
GOTO T50microsboucle ;on boucle tant que <>0 0.2*3=0.6 µs en tout
RETURN
;***** Attente de 1 µs (exactement, en comptant le temps d'appel)
Wait1micros NOP
RETURN
;ce programme émet un octet avec RS=0
LCD_send
movf LECTURE, PORTA ;Write, RS a 1, Enable a 1
movwf LCD_DATA ;Copie W sur le bus DATA
clrf LCD_E ;Enable a 0
CALL Wait50micros
return
;ce programme émet un octet avec RS=1
LCD_sendRS
movf ECRITURE, PORTA ;Write, RS a 0, Enable a 1
movwf LCD_DATA ;Copie W sur le bus DATA
clrf LCD_E ;Enable a 0
CALL Wait50micros
return
pont
Messages postés198Date d'inscriptionsamedi 2 mai 2009StatutMembreDernière intervention16 novembre 20101 25 mai 2009 à 19:00
Bonjour Ultimate,
J'ai passé ton programme à la moulinette, MPLAB 8.30 actuel, qui l'a trouvé bon, bien construit. Seules deux restrictions (des Warning) en 271 et 280, c'est d'ailleurs la même, il estime que tu as mis un argument hors de la gamme. PORTA est n octer, je suis donc remonté aux déclarations et les 2 variables destinées à le recevoir sont à un octet aussi, donc je ne vois rien de répréhensible, peut-être voudrait-il que ce soit déclaré autrement?
Que se passe-t-il exactement aux essais? La carte est-elle bien vérifiée au point de vue qu'elle aurait déjà marché dans le même genre de programme? C'est très délicat de ne pouvoir s'appuyer sur rien de sûr, et as-tu un ICD2 ou un REAL ICE? Sans outils on ne peut rien faire, mais l'assemblage étant bon, le gros morceau est acquis, il faut passer au débugage, sur l'application même, comme tu dois en avoir l'habitude, dans ton cours, en BTS tu n'es pas un débutant. C'est en seconde qu'on débute, juste après la rentrée, on est au 3e trimestre, que se passe-t-il?
Cordialement - pont
pont
Messages postés198Date d'inscriptionsamedi 2 mai 2009StatutMembreDernière intervention16 novembre 20101 25 mai 2009 à 19:22
Dis-donc, il semble me revenir un souvenir: le lycée Baggio, ce n'est pas à Lille? Il faut deux g, tu ne connais même pas le nom de ton lycée, c'est grave. Et programmation il faut 2 m, comme dans maman Pont
UltimateXion
Messages postés4Date d'inscriptionmardi 24 mars 2009StatutMembreDernière intervention30 mai 2009 25 mai 2009 à 23:59
Bonjours pont, tout d'abord je tien a te remercier de porter attention a mon poste car j'en ai grand besoin, sinon pour programmation il y a bien deux m j'ai fait une faute de frappe j'en suis dsl. Sinon oui le lycée Baggio se situe bien a Lille et j'ai vérifié j'ai belle et bien mis deux g mais la n'est pas le problème ^^. Alors en se qui concerne mon programme je suis d'accord avec toi il n'y a aucune erreur a déclarer via MPLAB et c'est bien la mon problème car j'ai justement les outils nécessaire au lycée pour la programmation je suis déja passé en débugage avec ICD2, tout se lance parfaitement, le programme se met correctement sur le PIC il n'y a aucun problème de ce coté la, si ce n'est que rien ne s'affiche au niveau de l'afficheur. En se qui concerne la carte c'est moi même qui l'ai réalisé. J'ai fait tout les test possible à l'aide d'un oscilloscope pour valider de son bon fonctionnement, tout marche parfaitement ( le contraste, le réglage automatqiue de la luminosité via une photo résistance etc ...) d'ou mon appel à l'aide car ma carte fonctionne parfaitement. A mon avis le problème provient de l'innitialisation du lcd au début du programme, c'est pour cela que j'ai posté sur ce forum car je ne trouve pas d'ou provient le problème.
pont
Messages postés198Date d'inscriptionsamedi 2 mai 2009StatutMembreDernière intervention16 novembre 20101 26 mai 2009 à 12:37
Bonjour Ultimate,
Cela arrive à tout le monde, que tout marche, et au résultat ça ne marche pas quand même, pour un petit truc de rien du tout.
Puisque tu as une ICD2 (le "camembert sacré") en te mettant en mode pas à pas, tu dois bien voir exactement si ta routine envoie bien l'octet du caractère, au besoin avec un stylo testeur que tu mets sur une ligne de données du LCD,juste au moment où le pas envoie le caractère, ou l'oscillo, mais le stylo est plus visible.
S'il ne passe rien, il faut revoir la routine, s'il passe quelque chose, mettre un autre LCD, car on ne peut rien contrôler dedans, pourtant en général ça marche. Tu es tout seul à avoir ce boulot à faire, et pas de prof près de toi pour t'aider? Normalement tu es à ras de réussir, surtout que ton programme tu l'as fait simple et clair, pas de structure de tableau.
pont
Il suffit de passer le pont.
Vous n’avez pas trouvé la réponse que vous recherchez ?
UltimateXion
Messages postés4Date d'inscriptionmardi 24 mars 2009StatutMembreDernière intervention30 mai 2009 26 mai 2009 à 20:07
Bonjours pont, je viens justement de terminer mes écrit, je vais pouvoir consacrer tout le temps qu'il me reste pour terminer se programme avant mon oral, qui se trouve être dans un peu plus de 2 semaines =). Pour ce qui est des tests en mode pas à pas je vais pouvoir les réaliser demain, les profs viennent exclusivement nous ouvrir la salle pour que l'on puissent continuer de bosser alors qu'ils devrait déjà être en vacance,s ce qui est très sympa de leur part. Donc voila je vois tout cela demain, dès que j'ai du nouveau je te tien au courant. Encore merci, à bientôt.
pont
Messages postés198Date d'inscriptionsamedi 2 mai 2009StatutMembreDernière intervention16 novembre 20101 26 mai 2009 à 21:49
Bonsoir,
Les vacances des profs, cela ne doit pas te tracasser, un prof doit aider ses élèves, surtout que tu as fait le programme,auquel je ne vois rien à reprocher, sans certifier que c'est parfait car il faudrait que je puisse l'essayer sur une carte à PIC, que je n'ai pas actuellement, je suis justement en phase de m'équiper dans ce sens et j'attends un courrier de composants. Mais je compte bien examiner ce genre de problème avec des PICs. Je voudrais juste te témoigner d'une idée: Ce serait, pour vérifier ta carte de façon absolue, comme tu es à Lille, tu peux sauter chez Selectronic achète deux bargraphes verts page 4-12 à 2,4e pièce. Ne mets pas plus de 5mA par LED, pour éviter de surcharger le PIC qui totalise les courants, sinon il faut des transistors, ou des ULN2803.
le LCD a 14 broches.
Aussi, rassure-moi, je n'ai pas vu où tu mets la donnée à envoyer dans la variable ECRITURE !
pont
UltimateXion
Messages postés4Date d'inscriptionmardi 24 mars 2009StatutMembreDernière intervention30 mai 2009 30 mai 2009 à 00:53
C 'est bon j'ai bossé pas mal dessus sa marche enfin voici mon programme terminé.
;*****************************************************************************************************
; *
; Test du LCD sur un PIC16F877A - 4 Mhz *
; *
;*****************************************************************************************************
list p=16F877A ;list directive to define processor
#include ;processor specific variable definitions
CBLOCK 0x020
tempo50micro :1 ;Variable tempo 50 µs
tempo10ms :1 ;Variable tempo 10 ms
tempo1s :1 ;Variable tempo 1s
ENDC
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ;Pas de code protege, pas de watch hdog timer
;delai de demarrage, horloge HS
;*****************************************************************************************************
; *
; Brochage du PIC sur le LCD *
; *
;*****************************************************************************************************
; Port | Broche | E/S | Nom | Description
; RA2 | 4 | S | E | Sortie broche Enable du LCD
; RA1 | 3 | S | R/W | Sortie Broche Read/write du LCD
; RA0 | 2 | S | RS | Sortie Broche RS du LCD
; RD0 | 19 | S | D0 | Sortie bit 0 du LCD
; RD1 | 20 | S | D1 | Sortie bit 1 du LCD
; RD2 | 21 | S | D2 | Sortie bit 2 du LCD
; RD3 | 22 | S | D3 | Sortie bit 3 du LCD
; RD4 | 27 | S | D4 | Sortie bit 4 du LCD
; RD5 | 28 | S | D5 | Sortie bit 5 du LCD
; RD6 | 29 | S | D6 | Sortie bit 6 du LCD
; RD7 | 30 | S | D7 | Sortie bit 7 du LCD
ORG 0x000 ;processor reset vector
GOTO main ;go to beginning of program
nop
nop
nop
nop
;****************************************************************************************************
; *
; Programme Main *
; *
;****************************************************************************************************
main
;initialisation des ports
bcf STATUS,RP0 ;pointer en BANK0
bcf STATUS,RP1
clrf PORTD ;mettre les futures sorties à l'état bas
clrf PORTA
bsf STATUS,RP0 ;pointer en BANK1
clrf TRISD ;PORTD en sortie
clrf TRISA ;PORTA en sortie
movlw 0x06
movwf ADCON1
bcf STATUS,RP0 ;pointer en BANK0
nop ;un peu de temps laisser au PIC
;initialisation du LCD
call Wait10ms
movlw B'00110000'
call LCD_com
call Wait10ms
movlw B'00110000'
call LCD_com
call Wait10ms
movlw B'00110000'
call LCD_com
movlw B'00111100' ;0 0 1 DL N F x x : DL=0(4ports)/1(8ports), N=0(1ligne)/1(2lignes), F=font
call LCD_com
movlw B'00001100' ;0 0 0 0 1 D C B : D=Display=1(on)/0(off) C=curseur B=blinking
call LCD_com
movlw B'00000001' ;effacer l'écran et retour du curseur à la position 0
call LCD_com
movlw B'00000100' ;0 0 0 0 0 1 1/D S : 1/D=(1)incrémente le curseur après écriture S=(1)display is shifted
call LCD_com
boucle
call LCD_LIGNE1
movlw " "
call LCD_data
movlw " "
call LCD_data
movlw "B" ;écrire "B"
call LCD_data
movlw "I"
call LCD_data
movlw "E"
call LCD_data
movlw "N"
call LCD_data
movlw "V"
call LCD_data
movlw "E"
call LCD_data
movlw "N"
call LCD_data
movlw "U"
call LCD_data
movlw "E"
call LCD_data
movlw " "
call LCD_data
movlw "A"
call LCD_data
movlw "U"
call LCD_data
call LCD_LIGNE2
movlw " "
call LCD_data
movlw " "
call LCD_data
movlw "L"
call LCD_data
movlw "Y"
call LCD_data
movlw "C"
call LCD_data
movlw "E"
call LCD_data
movlw "E"
call LCD_data
movlw " "
call LCD_data
movlw "B"
call LCD_data
movlw "A"
call LCD_data
movlw "G"
call LCD_data
movlw "G"
call LCD_data
movlw "I"
call LCD_data
movlw "O"
call LCD_data
CALL Wait1s
GOTO boucle ;boucle
;*****************************************************************************************************
; *
; Les pauses a 4Mhz *
; *
;*****************************************************************************************************
;***** Attente de 1 s (exactement 1.00204 s)
Wait1s
MOVLW D'20' ; 20 fois
MOVWF tempo1s ;stockage dans la variable tempo1s
T1sboucle CALL Wait10ms
DECFSZ tempo1s,f ;décremente et test
GOTO T1sboucle ;on boucle tant que <>0
RETURN
;***** Attente de 15 ms (exactement 14.99 ms)
Wait15ms
MOVLW D'30' ; 30 fois
MOVWF tempo10ms ;stockage dans la variable tempo10ms
T15msboucle CALL Wait100micros
DECFSZ tempo10ms,f ;décremente et test
GOTO T15msboucle ;on boucle tant que <>0
RETURN
;***** Attente de 10 ms (exactement 10.02 ms)
Wait10ms
MOVLW D'40' ; 40 fois
MOVWF tempo10ms ;stockage dans la variable tempo10ms
T10msboucle CALL Wait50micros
DECFSZ tempo10ms,f ;décremente et test
GOTO T10msboucle ;on boucle tant que <>0
RETURN
;***** Attente de 1.5 ms (exactement ? ms)
Wait1.5ms
MOVLW D'6' ; 6 fois
MOVWF tempo10ms ;stockage dans la variable tempo10ms
T1.5msboucle CALL Wait50micros
DECFSZ tempo10ms,f ;décremente et test
GOTO T1.5msboucle ;on boucle tant que <>0
RETURN
;***** Attente de 100 µs (exactement, en comptant le temps d'appel)
Wait100micros
MOVLW D'33' ; 33 fois
MOVWF tempo50micro ;stockage dans la variable tempo50µ
T100microsboucle DECFSZ tempo50micro,f ;décremente et test
GOTO T100microsboucle ;on boucle tant que <>0 0.2*3=0.6 µs en tout
RETURN
;***** Attente de 50 µs (exactement, en comptant le temps d'appel)
Wait50micros
NOP
NOP
MOVLW D'16' ; 16 fois
MOVWF tempo50micro ;stockage dans la variable tempo50µ
T50microsboucle DECFSZ tempo50micro,f ;décremente et test
GOTO T50microsboucle ;on boucle tant que <>0 0.2*3=0.6 µs en tout
RETURN
;***** Attente de 5 µs (exactement, en comptant le temps d'appel)
Wait5micros NOP
RETURN
;*****************************************************************************************************
; *
; Les sous programmes *
; *
;*****************************************************************************************************
;ce programme émet un octet avec RS=0
LCD_com
bcf PORTA, 1 ;Write
bcf PORTA, 0 ;RS a 0
bsf PORTA, 2 ;Enable a 1
movwf PORTD ;Copie W sur le bus DATA
bcf PORTA, 2 ;Enable a 0
CALL Wait50micros
return
;ce programme émet un octet avec RS=1
LCD_data
bcf PORTA, 1 ;Write
bsf PORTA, 0 ;RS a 1
bsf PORTA, 2 ;Enable a 1
movwf PORTD ;Copie W sur le bus DATA
bcf PORTA, 2 ;Enable a 0
CALL Wait50micros
return
;ce programme sélectionne la ligne 1
LCD_LIGNE1
movlw h'80'
CALL LCD_com
return
;ce programme sélectionne la ligne 2
LCD_LIGNE2
movlw h'C0'
CALL LCD_com
return
;*****************************************************************************************************
; *
; FIN *
; *
;*****************************************************************************************************
pont
Messages postés198Date d'inscriptionsamedi 2 mai 2009StatutMembreDernière intervention16 novembre 20101 30 mai 2009 à 09:48
Bonjour Ultimate,
FELICITATIONS, tu as réussi, je suis bien content, car ce n'est pas clair ce genre de commande, c'est réussi c'est merveilleux, c'est au poil, qu'est-ce qui n'allait pas? Alors, cela affiche bien comme il faut, ce n'était pas facile.
C'est le moment de ton BTS maintenant, cela va être bon.
J'espère que tu voudras bien me donner des nouvelles de ton résultat de BTS, sur MP cela me fera plaisir, tu sais je fus comme toi étudiant de ta région,
. . .j'ai fait ma prépa de l'Ecole Normale Supérieure à côté de Lille à Armentières, et j'ai passé le concours national dans les grands locaux de la foire de Lille,
Il y avait 110 candidats quand même, donc toutes les prépas de l'académie et quand on sait qu'il y a 20 académies, de métropole et 4 d'outre-mer et pour 56 places, il y avait donc 56/24=2,3 places pour 110 candidats, n'était-ce pas un peu fou de s'y présenter?
. .Et il s'est passé un résultat exceptionnel, à savoir que notre académie de Lille, au lieu de seulement 2 ou 3 reçus, en a eu 11, oui onze, tu vois qu'on est costauds dans le nord, donc des académies n'ont eu aucun reçu, c'est grave quand même, tous ces profs de prépa qui ont été inefficaces et je pense que ton lycée Baggio aussi avait une prépa ENS c'est sans doute pour ça que je me rappelle de son nom, et il n'y a pas eu de reçu à Baggio non plus pour la bonne raison que les 11 étaient tous de notre lycée d'Armentières, qui présentait 16 candidats, il y a donc eu 5 échoués chez nous, dont les 4 meileurs en analyse de maths qui avaient 16 de moyenne et redoublaient. D'ailleurs on n'a été que deux à être reçus du premier coup. Je n'étais qu'assez bon en analyse, mais par contre imbattable sur 3 matières: construction, géométrie descriptive, et physique, le 18 assuré en toutes circonstances, sauf erreur de calcul. Et j'ai eu un "bol" extra, l'épreuve de construction super-dure, 8h de travail, sujet "infaisable" par presque tous les concurrents, j'ai compris que c'était le tapis rouge pour moi, une épreuve faite à ma mesure, laissant la concurrence derrière, et j'ai mis le paquet, j'ai bien vu autour de moi qu'ils étaient tous coincés, pendant que je travaillais mes calculs à fond la caisse, les autres ne faisaient presque rien, ils ne savaient pas quoi faire, carrément, me laissant le champ libre, et cela dans toute la France, car ensuite, à l'ENS, j'ai vu qu'un seul m'égalait dans cette matière.
Et pourquoi spécialement notre lycée d'Armentières s'est taillé la part du lion? Je connais la raison, c'est que le proviseur d'Armentières ne prenait pas des candidats venant de ses classes, mais envoyait une lettre à tous les proviseurs de terminale en France, qui n'avaient pas de prépa ENS demandant que soit offerte aux seuls 3 meilleurs élèves du lycée une place de prépa, chez nous à Vierzon, 2 élèves de notre classe, et 1 élève de la classe // ont été convoqués dans le bureau du proviseur, j'ai été candidat et le 1er de l'autre classe, et sommes allés à Armentières. Et à Armentières encore des sélections,avant l'année du concours;je suis même le seul rescapé d'une classe formée d'anciens premiers de classe de terminale! Tout le monde n'atteignait pas l'année du concours qui était nourrie par les redoublants et triplants.Il ne faut pas être le 2e dans certains cas. La prépa Armentières c'est le parcours du combattant, mais le proviseur avec ses méthodes tirait le meilleur résultat au concours jusqu'à écraser complètement ses collègues des autres prépas plus faciles. Des profs venaient de Paris pour nous! Dans leurs rangs il y a eu aussi un sacré tri, une étudiante en doctorat n'a fait qu'un seul cours de physique, exit! Je n'ai pas eu de classement officiel de mon résultat académique du concours, mais j'ai de bonnes raisons de penser que sur Lille je n'ai pas été surclassé, puisque je connaissais tous les autres reçus, je sais bien ce qu'ils donnaient par rapport à moi.
........
J'espère que tu fais des étincelles aussi dans ta classe? Raconte-moi.
Et à propos, quand tu auras fini ton BTS, as-tu la possibilité de me faciliter les relations avec Selectronic, car j'habite très loin (île de la Réunion)?
pont