Rajout
de EEprom_List.xls
But: :
Recuperer le contenu du fichier Eeprom associé au projet
"TOTO": Je sauvegarde toujour ce genre
de fichier en rajoutant Eeprom à la fin , car il ya de
forts risques d'ecrasement du fichier chargeur Toto.hex
vu qu'il n'y a que le petit i
qui fait la difference !
Il suffit d'ouvrir, dans excel, ledit fihier Toto_Eeprom.ihex
comme un fichier txt ou Csv , mais sans appliquer de
filtre ou tri.
On ouvre le fichier de travail Eeprom_list.xls et on
copie dedans la "Feuil1" , la partie ainsi
recupérée.A1..A18
Il suffit ensuite , sur la feuille EEPROM_LIST , de
lancer la macro via le bouton prevu à cet effet "Extirpe
Ascii Eeprom"
et on obtient le listing avec à gauche, en colonne C, l'adresse
decimale modulo 8
et à droite , en colonne D, le texte en ascii..
les caracteres speciaux 13=<CR> 10=<LF> sont
clairement explicité
Le zero terminateur est aussi affiché comme 0
sinon les autres caracteres < 32 sont affiché en '.'
(point)
de meme que l'espace libre de l'eeprom
il n'y a plus qu'à copier coller la
zone en ascii : C1..C17 dans le source C.
On peut ainsi, lire un code C mikroC AVEC les liens d'adresse
donnees EEPROM
La Macro VBA qui va bien :
à suivre : adapter à la taille 1024K eeprom
Rajout
de SPLITLOG.EXE dans les "Tools" (outils)
MickroC
But: voir les lib mikroC utilisées dans un
projet
Pour cela, il faut remettre en forme le contenu de la
fenetre 'Messages Windows" , résultat de la
compilation.
Le resultat de compilation dans la fenetre "Message"
me donne une
premiere ligne de plus de 700 caracteres de long !!
incluant aussi tous les chemins de librairies utilisées,
qui sont masqués , car en dehors de la plage largeur
editeur de texte .
.. requete faite aupres de MIKROE pour ce probleme ..
sans suite à ce jour
J'ai donc decidé de me faire une petite moulinette (filtre)
pour élager / diviser cette ligne en plusieurs items
bien lisibles
en particulier pour savoir quelles sont les
librairies cochées dans le projet .. car à
moins de faire une harcopie d'écran !...
Il suffit de capturer le text de la fenetre message :
click droit.. copy all as text .. coller dans un fichier
qu'on applelera 16F877_.TXT
limit de 8 car sur le nom de texte ,car l'appli est
ecrite en en TURBOC 2.00 sous DOS des annes 80!
puis click sur l'outil integré SPLITLOG => on obtient
en sortie (ESC dans le programme splitlog) ,un fichier
OUTFILE..DAT
Intsallation de cet outil:
Attention , bien definir le chemin du fichier SPLITLOG.EXE
C'est
dommage ,il n'y a pas de MACRO pour definir le fichier
log de compilation, dans
la liste des Macro Parameters..
on est donc obliger de le mettre en dur ici
De meme , impossible d'afficher l'icone dans la Toobar ..
on a un icone vide (ou blanc)
Messages AVANT et APRES
avec fichier d'entree 16F877_.txt (ou autre, mais 8 cars
maxi suivi de .txt)
nom de fichier de sortie immuable: OUTFILE.DAT
(car déja defini dans le programme exe)
AVANT | |
APRES |
Le programme est ecrit en
TurboC 2.00 (date des annees 80) : SPLITLOG.C
L'executable : SPLITLOG.EXE very
light size of program (17Ko) , because run into a DOS
windows
tourne OK dans une fenetre DOS sous Win XP
Recherche des Librairies utilisées dans "Messages"
Windows
Exemple d'usage avec mikroC, apres compilation.
Fenetre "Messages"
Click droit , dans la fenetre et choix "Copy all as Text"
Ouvrir l'editeur de texte "Notepad ++"
aller sur le bandeau
Fichier "Nouveau"
click droit : Coller ( texte copié dans le nouveau fichier)
0 1 mikroCPIC1618.exe -MSF -DBG -pP18F27K42 -RA -C -DL -O11111114
-fo64 -N"C:\_MikroC\_MesProjets_MikroC\_18F27K42_UART1_ADC1_Mini_Oled_20x10mm_RTC_I2C_Hw_SANS_MC_lib_2021\P18F27K42_I2C1_HW_mini_OLED_128x32_et_RTC_sans_MC_Lib_2021-0308.mcppi"
-SP"C:\_MikroC\mikroC PRO for PIC\Defs\" -SP"C:\_MikroC\mikroC
PRO for PIC\uses\P18\" -SP"C:\_MikroC\_MesProjets_MikroC\_18F27K42_UART1_ADC1_Mini_Oled_20x10mm_RTC_I2C_Hw_SANS_MC_lib_2021\"
-IP"C:\_MikroC\mikroC PRO for PIC\uses\P18\"
"P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c"
"__Lib_Math.mcl" "__Lib_MathDouble.mcl"
"__Lib_System.mcl" "__Lib_Delays.mcl"
"__Lib_CType.mcl" "__Lib_CString.mcl"
"__Lib_CStdlib.mcl" "__Lib_Conversions.mcl"
"__Lib_Sprintf.mcl" "__Lib_ADC_K40.mcl"
0 1139 Available RAM: 8170 [bytes], Available ROM: 131072
[bytes]
0 122 Compilation Started P18F27K42.c
7913 123 Compiled Successfully P18F27K42.c
0 122 Compilation Started __Lib_Delays.c
172 123 Compiled Successfully __Lib_Delays.c
0 122 Compilation Started P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
722 1163 Variable 'x1' has been declared, but not used
oled_mini_2021-0308.inc
751 1163 Variable 'cc' has been declared, but not used
oled_mini_2021-0308.inc
780 1163 Variable 'cc' has been declared, but not used
oled_mini_2021-0308.inc
163 1163 Variable 'k' has been declared, but not used rtc_ds3231_2021-0308.inc
0 1004 interrupt handler (Interrupts at 0x0008) P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
1216 123 Compiled Successfully P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
300 1164 Variable 'cx' has been eliminated by optimizer P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
408 1164 Variable 'k' has been eliminated by optimizer P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
518 1164 Variable 'page' has been eliminated by optimizer
P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
700 1164 Variable 'k' has been eliminated by optimizer P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
114 1164 Variable 'Adresse' has been eliminated by
optimizer P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
114 1164 Variable 'Registre' has been eliminated by
optimizer P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
115 1164 Variable 'Nb' has been eliminated by optimizer P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c
0 127 All files Compiled in 328 ms
0 1144 Used RAM (bytes): 1363 (17%) Free RAM (bytes):
6807 (83%) Used RAM (bytes): 1363 (17%) Free RAM (bytes):
6807 (83%)
0 1144 Used ROM (bytes): 28736 (22%) Free ROM (bytes):
102336 (78%) Used ROM (bytes): 28736 (22%) Free ROM (bytes):
102336 (78%)
0 125 Project Linked Successfully P18F27K42_I2C1_HW_mini_OLED_128x32_et_RTC_sans_MC_Lib_2021-0308.mcppi
0 128 Linked in 109 ms
0 129 Project 'P18F27K42_I2C1_HW_mini_OLED_128x32_et_RTC_sans_MC_Lib_2021-0308.mcppi'
completed: 750 ms
0 103 Finished successfully: 13 mars 2021, 11:10:45 P18F27K42_I2C1_HW_mini_OLED_128x32_et_RTC_sans_MC_Lib_2021-0308.mcppi
la 1ere ligne fait ici 733 caracteres !
mettre le curseur sur le 1er caratere du fichier
aller sur le bandeau
Macro
Choisir Replace_lib
le fichier est modifié et se présente ainsi
0 1 mikroCPIC1618.exe -MSF -DBG -pP18F27K42 -RA -C -DL -O11111114
-fo64 -N"^C
C:\_MikroC\_MesProjets_MikroC\_18F27K42_UART1_ADC1_Mini_Oled_20x10mm_RTC_I2C_Hw_SANS_MC_lib_2021\P18F27K42_I2C1_HW_mini_OLED_128x32_et_RTC_sans_MC_Lib_2021-0308.mcppi"
-SP"^C
C:\_MikroC\mikroC PRO for PIC\Defs\" -SP"^C
C:\_MikroC\mikroC PRO for PIC\uses\P18\" -SP"^C
C:\_MikroC\_MesProjets_MikroC\_18F27K42_UART1_ADC1_Mini_Oled_20x10mm_RTC_I2C_Hw_SANS_MC_lib_2021\"
-IP"^C
C:\_MikroC\mikroC PRO for PIC\uses\P18\" "P18F27K42_I2C1_HW_RTC_OLED_sans_MC_Lib_2021_0309.c"
"
_Lib_Math.mcl" "
_Lib_MathDouble.mcl" "
_Lib_System.mcl" "
_Lib_Delays.mcl" "
_Lib_CType.mcl" "
_Lib_CString.mcl" "
_Lib_CStdlib.mcl" "
_Lib_Conversions.mcl" "
_Lib_Sprintf.mcl" "
_Lib_ADC_K40.mcl"
0 1139 Available RAM: 8170 [bytes], Available ROM: 131072
[bytes]
0 122 Compilation Started P18F27K42.c
7913 123 Compiled Successfully P18F27K42.c
0 122 Compilation Started
... etc .....
on voit mainteant
clairement , les lib utilisées !
Re-créer manuellement la macro "replace_lib"
ou récuperer le fichier ci dessous :
La macro n'est
pas modifiable dans notepad++ !
elle se trouve bien cachée ici ;
C:\Users\Paul\AppData\Roaming\Notepad++\shortcuts.xml
dans ce fichier
<NotepadPlus>
<InternalCommands />
<Macros>
<Macro name="Trim Trailing and save" Ctrl="no"
Alt="yes" Shift="yes" Key="83">
<Action type="2" message="0"
wParam="42024" lParam="0" sParam=""
/>
<Action type="2" message="0"
wParam="41006" lParam="0" sParam=""
/>
</Macro>
<Macro name="replace_Lib" Ctrl="no"
Alt="no" Shift="no" Key="0">
<Action type="3" message="1700"
wParam="0" lParam="0" sParam=""
/>
<Action type="3" message="1601"
wParam="0" lParam="0" sParam="C:\"
/>
<Action type="3" message="1625"
wParam="0" lParam="0" sParam=""
/>
<Action type="3" message="1602"
wParam="0" lParam="0" sParam="^CC:\"
/>
<Action type="3" message="1702"
wParam="0" lParam="768" sParam=""
/>
<Action type="3" message="1701"
wParam="0" lParam="1609" sParam=""
/>
<Action type="3" message="1700"
wParam="0" lParam="0" sParam=""
/>
<Action type="3" message="1601"
wParam="0" lParam="0" sParam="C:\"
/>
<Action type="3" message="1625"
wParam="0" lParam="1" sParam=""
/>
<Action type="3" message="1602"
wParam="0" lParam="0" sParam="\nC:\"
/>
<Action type="3" message="1702"
wParam="0" lParam="768" sParam=""
/>
<Action type="3" message="1701"
wParam="0" lParam="1609" sParam=""
/>
<Action type="3" message="1700"
wParam="0" lParam="0" sParam=""
/>
<Action type="3" message="1601"
wParam="0" lParam="0" sParam="__Lib"
/>
<Action type="3" message="1625"
wParam="0" lParam="1" sParam=""
/>
<Action type="3" message="1602"
wParam="0" lParam="0" sParam="\n_Lib"
/>
<Action type="3" message="1702"
wParam="0" lParam="768" sParam=""
/>
<Action type="3" message="1701"
wParam="0" lParam="1609" sParam=""
/>
</Macro>
</Macros>
<UserDefinedCommands>
<Command name="Launch in IE" Ctrl="yes"
Alt="yes" Shift="yes" Key="73">iexplore
"$(FULL_CURRENT_PATH)"</Command>
<Command name="Launch in Chrome" Ctrl="yes"
Alt="yes" Shift="yes" Key="82">chrome
"$(FULL_CURRENT_PATH)"</Command>
<Command name="Get php help" Ctrl="no"
Alt="yes" Shift="no" Key="112">http://www.php.net/%20$(CURRENT_WORD)</Command>
<Command name="Google Search" Ctrl="no"
Alt="yes" Shift="no" Key="113">http://www.google.com/search?q=$(CURRENT_WORD)</Command>
<Command name="Wikipedia Search" Ctrl="no"
Alt="yes" Shift="no" Key="114">http://en.wikipedia.org/wiki/Special:Search?search=$(CURRENT_WORD)</Command>
<Command name="Open file" Ctrl="no"
Alt="yes" Shift="no" Key="116">$(NPP_DIRECTORY)\notepad++.exe
$(CURRENT_WORD)</Command>
</UserDefinedCommands>
<PluginCommands />
<ScintillaKeys />
</NotepadPlus>
lien utiles :
https://nliautaud.developpez.com/tutoriels/web/notepadplusplus-guide-pratique/macros/
https://npp-user-manual.org/
fichier Notepad++ Macro : shortcuts.xml
Extraire
les datas d'une courbe y=F(x) sur un Graphe
But: :
Recuperer les valeurs numeriques du contenu d'une courbe
/ fonction y=F(x) pour les integrer ensuite dans une
autre Appli
ex: fichier excel, datas pour MCU ..etc...
en exemple: recuperer les donnees d'un signal ECG
Une fois un modele d'image trouvé
image originale 442x310 (sur Wikipedia) | image traite par PSP5 448x320 | resultat analyse BMP pour extirper les datas |
A l'aide de Paint Shop Pro
5.00 (ou tout autre logiciel de retouche d'image) , le
fichier original est traité de sorte que :
le nombre de couleur soit reduit à 2 : Noir et blanc, de
sorte à faire ressortir uniquement la courbe à etudier
, en NOIR sur fond
blanc et fixer un seuil de reconnaissance
Il est fixe dans le programme : seuil <10 , en
realité on a Blanc=255 et Noir =0
Le format de l'image à traiter doit etre modulo 8 ! sur
les 2 axes
donc, ici l'image a eté legerement agrandie pour passer
de 442x310 à 448x320 pixels
il faudrait peut etre en tenir compte pour une mise à l'echelle
finale..au niveau utilisation des datas
L'image traité contient donc le signal EN NOIR
Il suffit avec l'application BITMAP3.EXE de lire ce
fichier BMP
Le plus aisé est d'utiliser DOSBOX 0.74 pour lancer ce
type de programme DOS dans une fenetre Windows XP
dans cet exemple le chemin du fichier Bitmap3.exe est : D:\TC\EXE
taper : Bitmap3.exe ECG_0001.bmp
Le programme lit l'entete du fichier BMP pour recuperer
la valeur de l'axe X (=Nombre de datas)
et explore chaque ligne Y de l'image pour en recuperer
les valeurs Y (en pixels) et les stocke dans une table
dynamique.
comme des entiers.
Attention à l'origine de l'image qui est en haut à
gauche ..Y inverses.. le programme en tient compte.
Les valeurs sont ensuite affichées, pour verification et
aiguilles vers un fichier de sortie : outfile.txt
qui stocke les datas ,converties en ascii sur 5 digits,
separes par un <CR>.
La lecture du fichier Outfile.txt avec excel en mode Csv
ou txt
donne bien les 448 valeurs , et restitue bien le signal
voulu.
Excel peut apres, mettre à l'echelle voulue, les donnees
ainsi acquises., avec des formules ou macros ou vba
Nota:
le parametre
seuil du programme BITMAP, ainsi que le parametrage de
mise à l'echelle des valeurs de sorties
pourraient tres bien etre incluse dans le programme en
rajoutant des arguments au lancement du programme
On peut aussi se passer de l'affichage grafique !..
a vous de jouer...
le contenu de Outfile.txt | resultat via ECG_Outfile_txt.xls |
le projet : bitmap3.prj
Le source du programme TC 2.00 : Bitmap3.c
L'executable :BITMAP3.EXE
config TC200 : TCPICKD.TCP
fichier excel pour remaniement datas: ECG_Outfile_txt_Visu.xls
Questions ? :paulfjujo@free.fr
retour à l'index
général