From 00b5dfea65fbfb511406a9a4cc39c7e71f0412be Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 27 Jan 2024 20:22:46 +0100 Subject: [PATCH] first week of revision --- docs/README.md | 30 +-- docs/_navbar.md | 13 +- docs/bachelor/Eln/README.md | 3 - docs/bachelor/README.md | 18 -- docs/bachelor/SEm/README.md | 4 - docs/divers/README.md | 4 +- docs/{ => divers}/excalidraw.json | 0 docs/index.html | 56 +++-- docs/{bachelor => infotro}/Eln/ADDA.md | 25 +- docs/infotro/Eln/README.md | 7 + docs/infotro/Eln/Sigma-Delta.md | 234 ++++++++++++++++++ .../Eln/comptage-graph.png | Bin docs/{bachelor => infotro}/Eln/comptage.png | Bin docs/{bachelor => infotro}/Eln/parallele.png | Bin docs/{bachelor => infotro}/Eln/pesee.png | Bin docs/infotro/Eln/sigma-delta.drawio | 151 +++++++++++ docs/infotro/Eln/snr_by_osr.png | Bin 0 -> 11400 bytes docs/infotro/PTR/XF.md | 73 ++++++ docs/infotro/README.md | 19 ++ docs/{bachelor => infotro}/SDi/img.png | Bin docs/{bachelor => infotro}/SDi/img_1.png | Bin .../SDi/paper_exercise.md | 0 .../SDi/transmission_process.md | 0 docs/{bachelor => infotro}/SEm/ASM.md | 0 docs/{bachelor => infotro}/SEm/PLA.md | 0 docs/infotro/SEm/README.md | 4 + .../SEm/img/Pasted image 20231116153738.png | Bin .../SEm/img/Pasted image 20231116154303.png | Bin .../SEm/img/Pasted image 20231116154853.png | Bin .../SEm/img/Pasted image 20231116155200.png | Bin docs/infotro/_navbar.md | 10 + 31 files changed, 579 insertions(+), 72 deletions(-) delete mode 100644 docs/bachelor/Eln/README.md delete mode 100644 docs/bachelor/README.md delete mode 100644 docs/bachelor/SEm/README.md rename docs/{ => divers}/excalidraw.json (100%) rename docs/{bachelor => infotro}/Eln/ADDA.md (82%) create mode 100644 docs/infotro/Eln/README.md create mode 100644 docs/infotro/Eln/Sigma-Delta.md rename docs/{bachelor => infotro}/Eln/comptage-graph.png (100%) rename docs/{bachelor => infotro}/Eln/comptage.png (100%) rename docs/{bachelor => infotro}/Eln/parallele.png (100%) rename docs/{bachelor => infotro}/Eln/pesee.png (100%) create mode 100644 docs/infotro/Eln/sigma-delta.drawio create mode 100644 docs/infotro/Eln/snr_by_osr.png create mode 100644 docs/infotro/PTR/XF.md create mode 100644 docs/infotro/README.md rename docs/{bachelor => infotro}/SDi/img.png (100%) rename docs/{bachelor => infotro}/SDi/img_1.png (100%) rename docs/{bachelor => infotro}/SDi/paper_exercise.md (100%) rename docs/{bachelor => infotro}/SDi/transmission_process.md (100%) rename docs/{bachelor => infotro}/SEm/ASM.md (100%) rename docs/{bachelor => infotro}/SEm/PLA.md (100%) create mode 100644 docs/infotro/SEm/README.md rename docs/{bachelor => infotro}/SEm/img/Pasted image 20231116153738.png (100%) rename docs/{bachelor => infotro}/SEm/img/Pasted image 20231116154303.png (100%) rename docs/{bachelor => infotro}/SEm/img/Pasted image 20231116154853.png (100%) rename docs/{bachelor => infotro}/SEm/img/Pasted image 20231116155200.png (100%) create mode 100644 docs/infotro/_navbar.md diff --git a/docs/README.md b/docs/README.md index 4c0e41c..b2b352f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,19 +1,19 @@ -# [Bachelor in embedded system](/bachelor/) +
+

Yggdrasil

+
+Yggdrasil is a collections of notes around IT, OT and other geeks stuff +
+
+
-## [PTR](/bachelor/PTR/) - - -## [SDi](/bachelor/SDi/) -- [transmission_process.md](/bachelor/SDi/transmission_process.md) - - -## [Eln](/bachelor/Eln/) -- [AD/DA](/bachelor/Eln/ADDA.md) - - -## [SEm](/bachelor/SEm/) -- [PLA - Programmation en langage assembleur](/bachelor/SEm/PLA.md) -- [ASM - Assembleur ARM](/bachelor/SEm/ASM.md) +# [Bachelor in embedded system](/infotro/) +Here notes I take during my bachelor in embedded systems +Mainly some topics: +- [PTR - Programmation Temps Réel](/infotro/PTR/) +- [SDi - Système Distribué](/infotro/SDi/) +- [Eln - Électronique](/infotro/Eln/) +- [SEm - Systèmes Embarqué](/infotro/SEm/) # [STM32](/STM32/) +Here some note specific about STM32 diff --git a/docs/_navbar.md b/docs/_navbar.md index 795fc34..dccb870 100644 --- a/docs/_navbar.md +++ b/docs/_navbar.md @@ -1,9 +1,6 @@ -* [PTR](/bachelor/PTR) -* [SDi](/bachelor/SDi) - * [Transmission Process](/bachelor/SDi/transmission_process.md) -* [Eln](/bachelor/Eln/) - * [AD/DA](/bachelor/Eln/ADDA.md) -* [SEm](/bachelor/SEm/) - * [PLA - Programmation en langage assembleur](/bachelor/SEm/PLA.md) - * [ASM - Assembleur ARM](/bachelor/SEm/ASM.md) +* [Bachelor Infotro](/infotro/) + * [PTR - Programmation Temps Réel](/infotro/PTR/) + * [SDi - Systèmes Distribués](/infotro/SDi) + * [Eln - Électronique](/infotro/Eln/) + * [SEm - Systèmes Embarqués](/infotro/SEm/) * [STM32](/STM32/) \ No newline at end of file diff --git a/docs/bachelor/Eln/README.md b/docs/bachelor/Eln/README.md deleted file mode 100644 index 9e1b5cf..0000000 --- a/docs/bachelor/Eln/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Interfaces et convertisseur - -- [AD/DA](/bachelor/Eln/ADDA.md) \ No newline at end of file diff --git a/docs/bachelor/README.md b/docs/bachelor/README.md deleted file mode 100644 index 415dacc..0000000 --- a/docs/bachelor/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Bachelor in embedded system - -## [PTR](/bachelor/PTR/) - - -## [SDi](/bachelor/SDi/) -- [transmission_process.md](/bachelor/SDi/transmission_process.md) - - -## [Eln](/bachelor/Eln/) -- [Interfaces et convertisseurs](/bachelor/Eln/README.md#Interfaces-et-convertisseur) -- [AD/DA](/bachelor/Eln/ADDA.md) - - -## [SEm](/bachelor/SEm/) -- [PLA - Programmation en langage assembleur](/bachelor/SEm/PLA.md) -- [ASM - Assembleur ARM](/bachelor/SEm/ASM.md) - diff --git a/docs/bachelor/SEm/README.md b/docs/bachelor/SEm/README.md deleted file mode 100644 index 0bce9a5..0000000 --- a/docs/bachelor/SEm/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Taille des paquets de bits - -[PLA](/bachelor/arm/PLA.md) -[ASM(/bachelor/arm/ASM.md) \ No newline at end of file diff --git a/docs/divers/README.md b/docs/divers/README.md index 8e59605..23899a7 100644 --- a/docs/divers/README.md +++ b/docs/divers/README.md @@ -3,7 +3,7 @@ $$ E=mc^2 $$ -[transmission_process.md](../bachelor/SDi/transmission_process.md) +[transmission_process.md](../infotro/SDi/transmission_process.md) ## embedding it directly ```mermaid @@ -26,7 +26,7 @@ Alice <-- Bob: another authentication Response ## load from external files -![kroki-excalidraw](../excalidraw.json) +![kroki-excalidraw](excalidraw.json) ## Wavedrom ```wavedrom diff --git a/docs/excalidraw.json b/docs/divers/excalidraw.json similarity index 100% rename from docs/excalidraw.json rename to docs/divers/excalidraw.json diff --git a/docs/index.html b/docs/index.html index 8d8808b..301c102 100644 --- a/docs/index.html +++ b/docs/index.html @@ -22,23 +22,11 @@ repo: 'https://git.kb28.ch/Klagarge/Yggdrasil.git', maxLevel: 3, coverpage: false, - autoHeader: true, - loadNavbar: true, + loadNavbar: true, // Nav bar on top - was true subMaxLevel: 3, - auto2top: true, - mergeNavbar: true, - search: { - maxAge: 86400000, // Expiration time, the default one day - paths: [ - '/', - '/bachelor', - '/STM32', - ], - placeholder: 'Type to search', - noData: 'No Results!', - depth: 5, - hideOtherSidebarContent: false, // whether or not to hide other sidebar content - }, + auto2top: true, // was true + mergeNavbar: true, // was true + //search: 'auto', pagination: { previousText: { '/en/': 'PREV', @@ -79,6 +67,42 @@ } } }, + darklightTheme: { + siteFont : "Ubuntu", + defaultTheme : 'light', + codeFontFamily : 'Roboto Mono, Monaco, courier, monospace', + bodyFontSize : '17px', + dark: { + accent: '#42b983', + toogleBackground : '#ffffff', + background: '#091a28', + textColor: '#b4b4b4', + codeTextColor : '#ffffff', + codeBackgroundColor : '#0e2233', + borderColor : '#0d2538', + blockQuoteColor : '#858585', + highlightColor : '#d22778', + sidebarSublink : '#b4b4b4', + codeTypeColor : '#ffffff', + coverBackground : 'linear-gradient(to left bottom, hsl(118, 100%, 85%) 0%,hsl(181, 100%, 85%) 100%)', + toogleImage : 'url(https://cdn.jsdelivr.net/npm/docsify-darklight-theme@latest/icons/sun.svg)' + }, + light: { + accent: '#42b983', + toogleBackground : '#091a28', + background: '#ffffff', + textColor: '#34495e', + codeTextColor : '#525252', + codeBackgroundColor : '#f8f8f8', + borderColor : 'rgba(0, 0, 0, 0.07)', + blockQuoteColor : '#858585', + highlightColor : '#d22778', + sidebarSublink : '#b4b4b4', + codeTypeColor : '#091a28', + coverBackground : 'linear-gradient(to left bottom, hsl(118, 100%, 85%) 0%,hsl(181, 100%, 85%) 100%)', + toogleImage : 'url(https://cdn.jsdelivr.net/npm/docsify-darklight-theme@latest/icons/moon.svg)' + } + }, }; diff --git a/docs/bachelor/Eln/ADDA.md b/docs/infotro/Eln/ADDA.md similarity index 82% rename from docs/bachelor/Eln/ADDA.md rename to docs/infotro/Eln/ADDA.md index 8314d2d..e8cc460 100644 --- a/docs/bachelor/Eln/ADDA.md +++ b/docs/infotro/Eln/ADDA.md @@ -1,13 +1,14 @@ -# AD/DA +
+

AD/DA

+
-## AD +# AD Il existe 4 méthodes principales pour une conversion Analogique vers Digital: - Parallèle - Par pesée - Par comptage - Sigma-delta -# Conversion D/A | | + (Avantage) | - (Inconvénient) | |-------------------------|------------------------|-----------------------------| | **Parallèle
Unaire** | Simplicité
Monotone | Taille du circuit ~$2^{n}$ | @@ -16,11 +17,11 @@ Il existe 4 méthodes principales pour une conversion Analogique vers Digital: -### Parallèle +## Parallèle ![AD Parallèle](parallele.png ':size=200') -### Par comptage +## Par comptage Un seul switch mais avec une fréquence de commutation très rapide $$ V_{a} = \frac{t_{on}}{T}\cdot V_{ref} @@ -28,7 +29,7 @@ $$ ![AD par comptage](comptage.png ':size=300') ![Graph AD par comptage](comptage-graph.png ':size=200') -### Par pesée +## Par pesée Un switch par bit. ![AD par pesée](pesee.png ':size=300') @@ -46,3 +47,15 @@ Pour un $V_{red} = 1[V]$ on a: | 1 | 1 | 0 | 0,750 | | 1 | 1 | 1 | 0,875 | +# DA +## Échantillonneur avec maintien + + +# Caractéristique de convertisseurs + +## Digits et affichage + +$$ +nBits = Ceiling\left[log_2\cdot \frac{plage}{pas}\right] +$$ + diff --git a/docs/infotro/Eln/README.md b/docs/infotro/Eln/README.md new file mode 100644 index 0000000..96a8ee2 --- /dev/null +++ b/docs/infotro/Eln/README.md @@ -0,0 +1,7 @@ +
+

Électronique

+
+ +# Convertisseurs +- [AD/DA](/infotro/Eln/ADDA) +- [Sigma / Delta](/infotro/Eln/Sigma-Delta) \ No newline at end of file diff --git a/docs/infotro/Eln/Sigma-Delta.md b/docs/infotro/Eln/Sigma-Delta.md new file mode 100644 index 0000000..4a7599b --- /dev/null +++ b/docs/infotro/Eln/Sigma-Delta.md @@ -0,0 +1,234 @@ +
+

Sigma / Delta

+
+ +```drawio + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +# Principe +Un convertisseur analogique-numérique (AD) ou numérique-analogique (DA) delta-sigma se compose toujours d'un modulateur +delta-sigma produisant un "flux binaire" ou "signal binaire séquentiel" et d'un filtre passe-bas. + +Le modulateur peut être mis en œuvre comme un circuit numérique pour un signal numérique ou comme un circuit analogique +pour un signal analogique. De même, le filtre passe-bas peut être analogique pour générer un signal de sortie +analogique ou numérique, réalisé soit par un circuit numérique soit par un algorithme dans un processeur de signal. +Cette structure permet d'explorer le flux binaire et le filtre passe-bas avant d'approfondir l'étude du +modulateur delta-sigma. + +## Le flux binaire +Le flux binaire peut être interprété comme un signal digital ou analogique. +Il s'agit d'un signal séquentiel à un bit avec une fréquence d'horloge significativement plus élevée que le débit des +données numériques de l'ADC ou du DAC. Sa caractéristique essentielle est que sa moyenne correspond à la moyenne du +signal d'entrée. Un niveau logique "haut" représente la valeur maximale de sortie, tandis qu'un niveau logique "bas" +représente la valeur minimale de sortie. + +- **Sortie analogique:** Le flux binaire est converti par un DA à un bit en un signal analogique. +Les valeurs d'entrée "bas" et "haut" se traduisent respectivement par deux tensions analogiques précises, par exemple, +1V et +1V. + +- **Sortie digitale:** Dans le cas d'une sortie digitale, un niveau "haut" (ou "bas") dans le flux binaire représente +la valeur maximale (ou minimale) de la plage de valeurs digitales. Par exemple, dans un système à 8 bits, un niveau +"haut" pourrait correspondre à FF en hexadécimal, tandis qu'un niveau "bas" pourrait correspondre à 00 en hexadécimal. + +Un flux binaire similaire existe dans un signal modulé en largeur d‘impulsions (PWM), mais il présente quelques +désavantages par rapport au flux binaire d'un convertisseur delta-sigma, également appelé signal modulé en rapport +d’impulsions (PPM). La transmission en série d'une valeur numérique, telle que la sortie en série d'un ADC conventionnel +par pesée, est quant à elle appelée modulation par codage d'impulsions (PCM). + +# + +Un convertisseur sigma-delta est un type de convertisseur +analogique-numérique (CAN) qui utilise une boucle de contre-réaction pour +échantillonner et quantifier un signal analogique en un signal numérique. +Le principe de fonctionnement d'un convertisseur sigma-delta peut être +expliqué en plusieurs étapes : + +1. Échantillonnage : Tout d'abord, le signal analogique est échantillonné +à une fréquence d'échantillonnage beaucoup plus élevée que la bande + passante du signal. Cette haute fréquence d'échantillonnage permet de + réduire considérablement les effets des distorsions et du bruit dans le + domaine fréquentiel. +2. Quantification : Le signal échantillonné est ensuite quantifié en un + signal numérique à l'aide d'un comparateur qui compare le signal avec une + référence de tension fixe. La sortie du comparateur est une suite de bits + représentant la valeur du signal analogique à chaque instant. +3. Contre-réaction : Le signal quantifié est ensuite utilisé pour régler + un oscillateur numérique qui produit un signal d'erreur. Ce signal + d'erreur est ajouté au signal d'entrée dans la boucle de contre-réaction, + ce qui permet de compenser les erreurs de quantification et de réduire le + bruit dans le signal quantifié. +4. Suréchantillonnage : Le signal numérique produit par le convertisseur + sigma-delta est suréchantillonné à une fréquence beaucoup plus élevée que + la fréquence d'échantillonnage initiale, ce qui permet de réduire encore + davantage les effets du bruit dans le signal. +5. Décimation : Enfin, le signal suréchantillonné est décimé à la + fréquence d'échantillonnage désirée en utilisant un filtre passe-bas + numérique qui élimine les composantes de hautes fréquences indésirables. + +Le résultat final est un signal numérique représentant fidèlement le +signal analogique d'origine, avec une faible distorsion et un faible +bruit. La boucle de contre-réaction permet au convertisseur sigma-delta +d'atteindre des performances supérieures à celles des autres types de +convertisseurs analogique-numérique en termes de résolution et de +précision. + +$$ +SNR = 6,02n + 1,76[dB] +$$ + +![img.png](snr_by_osr.png) diff --git a/docs/bachelor/Eln/comptage-graph.png b/docs/infotro/Eln/comptage-graph.png similarity index 100% rename from docs/bachelor/Eln/comptage-graph.png rename to docs/infotro/Eln/comptage-graph.png diff --git a/docs/bachelor/Eln/comptage.png b/docs/infotro/Eln/comptage.png similarity index 100% rename from docs/bachelor/Eln/comptage.png rename to docs/infotro/Eln/comptage.png diff --git a/docs/bachelor/Eln/parallele.png b/docs/infotro/Eln/parallele.png similarity index 100% rename from docs/bachelor/Eln/parallele.png rename to docs/infotro/Eln/parallele.png diff --git a/docs/bachelor/Eln/pesee.png b/docs/infotro/Eln/pesee.png similarity index 100% rename from docs/bachelor/Eln/pesee.png rename to docs/infotro/Eln/pesee.png diff --git a/docs/infotro/Eln/sigma-delta.drawio b/docs/infotro/Eln/sigma-delta.drawio new file mode 100644 index 0000000..975bb6b --- /dev/null +++ b/docs/infotro/Eln/sigma-delta.drawio @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/infotro/Eln/snr_by_osr.png b/docs/infotro/Eln/snr_by_osr.png new file mode 100644 index 0000000000000000000000000000000000000000..d8d325335f6eff385aff3afa1640d380e8b81756 GIT binary patch literal 11400 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 +

XF

+ + +# Services + +## Reactive + +``` plantuml +@startuml + +participant MainLand as main +participant Queue as queue +participant Behavior as behavior +participant XF as xf + +main -> behavior: push(event) +behavior -> queue: add(event) + +xf -> xf: dispatchEvent() +activate xf +xf -> queue : getEvent() +queue --> xf +xf -> behavior: processEvent() +deactivate xf + +@enduml +``` + +## Timeout +``` plantuml +@startuml + +participant TimerQueue as tq #cyan +participant Timeout as t #LawnGreen +participant TimeoutManager as tm #cyan +participant EventQueue as eq #cyan +participant MainLand as main #cyan +participant Reactive as r #yellow + +r ->> tm: scheduleTimeout(tmid, evid, duration) +activate r #magenta +deactivate r + +create t +tm -->> t: <> +tm ->> tq: add(tm) <> +tm ->> tq: tick() +tq ->> t: decrement() +tm ->> tq: tick() +tq ->> t: decrement() + +tm ->> eq: pushEvent(tm) <> +tm ->> tq: remove(id) <> + +main ->> eq: popEvent() <> +activate main #yellow +eq -->> main: ev +main ->> t: getTarget() +t -->> main: reactive +main ->> r: processEvent(ev) +activate r #magenta +r -->> main +deactivate r +main -->> t !!: <> + +@enduml +``` + +## Protection +- Mutex, sémaphore +- éviter les conflits mémoire + diff --git a/docs/infotro/README.md b/docs/infotro/README.md new file mode 100644 index 0000000..121b598 --- /dev/null +++ b/docs/infotro/README.md @@ -0,0 +1,19 @@ +# Bachelor in embedded system + +## [PTR - Programmation Temps Réel](/infotro/PTR/) +- [XF](/infotro/PTR/XF.md) + + +## [SDi - Système Distribué](/infotro/SDi/) +- [Transmission process](/infotro/SDi/transmission_process.md) + + +## [Eln - Électronique](/infotro/Eln/) +- [AD/DA](/infotro/Eln/ADDA) +- [Sigma / Delta](/infotro/Eln/Sigma-Delta) + + +## [SEm - Système Embarqué](/infotro/SEm/) +- [PLA - Programmation en langage assembleur](/infotro/SEm/PLA.md) +- [ASM - Assembleur ARM](/infotro/SEm/ASM.md) + diff --git a/docs/bachelor/SDi/img.png b/docs/infotro/SDi/img.png similarity index 100% rename from docs/bachelor/SDi/img.png rename to docs/infotro/SDi/img.png diff --git a/docs/bachelor/SDi/img_1.png b/docs/infotro/SDi/img_1.png similarity index 100% rename from docs/bachelor/SDi/img_1.png rename to docs/infotro/SDi/img_1.png diff --git a/docs/bachelor/SDi/paper_exercise.md b/docs/infotro/SDi/paper_exercise.md similarity index 100% rename from docs/bachelor/SDi/paper_exercise.md rename to docs/infotro/SDi/paper_exercise.md diff --git a/docs/bachelor/SDi/transmission_process.md b/docs/infotro/SDi/transmission_process.md similarity index 100% rename from docs/bachelor/SDi/transmission_process.md rename to docs/infotro/SDi/transmission_process.md diff --git a/docs/bachelor/SEm/ASM.md b/docs/infotro/SEm/ASM.md similarity index 100% rename from docs/bachelor/SEm/ASM.md rename to docs/infotro/SEm/ASM.md diff --git a/docs/bachelor/SEm/PLA.md b/docs/infotro/SEm/PLA.md similarity index 100% rename from docs/bachelor/SEm/PLA.md rename to docs/infotro/SEm/PLA.md diff --git a/docs/infotro/SEm/README.md b/docs/infotro/SEm/README.md new file mode 100644 index 0000000..72c5ea1 --- /dev/null +++ b/docs/infotro/SEm/README.md @@ -0,0 +1,4 @@ +# Taille des paquets de bits + +[PLA](/infotro/arm/PLA.md) +[ASM](/infotro/arm/ASM.md) \ No newline at end of file diff --git a/docs/bachelor/SEm/img/Pasted image 20231116153738.png b/docs/infotro/SEm/img/Pasted image 20231116153738.png similarity index 100% rename from docs/bachelor/SEm/img/Pasted image 20231116153738.png rename to docs/infotro/SEm/img/Pasted image 20231116153738.png diff --git a/docs/bachelor/SEm/img/Pasted image 20231116154303.png b/docs/infotro/SEm/img/Pasted image 20231116154303.png similarity index 100% rename from docs/bachelor/SEm/img/Pasted image 20231116154303.png rename to docs/infotro/SEm/img/Pasted image 20231116154303.png diff --git a/docs/bachelor/SEm/img/Pasted image 20231116154853.png b/docs/infotro/SEm/img/Pasted image 20231116154853.png similarity index 100% rename from docs/bachelor/SEm/img/Pasted image 20231116154853.png rename to docs/infotro/SEm/img/Pasted image 20231116154853.png diff --git a/docs/bachelor/SEm/img/Pasted image 20231116155200.png b/docs/infotro/SEm/img/Pasted image 20231116155200.png similarity index 100% rename from docs/bachelor/SEm/img/Pasted image 20231116155200.png rename to docs/infotro/SEm/img/Pasted image 20231116155200.png diff --git a/docs/infotro/_navbar.md b/docs/infotro/_navbar.md new file mode 100644 index 0000000..79efa63 --- /dev/null +++ b/docs/infotro/_navbar.md @@ -0,0 +1,10 @@ +* [PTR - Programmation Temps Réel](/infotro/PTR/) + * [XF](/infotro/PTR/XF) +* [SDi - Systèmes Distribués](/infotro/SDi) + * [Transmission process](/infotro/SDi/transmission_process.md) +* [Eln - Électronique](/infotro/Eln/) + * [AD/DA](/infotro/Eln/ADDA) + * [Sigma / Delta](/infotro/Eln/Sigma-Delta) +* [SEm - Systèmes Embarqués](/infotro/SEm/) + * [PLA - Programmation en langage assembleur](/infotro/SEm/PLA.md) + * [ASM - Assembleur ARM](/infotro/SEm/ASM.md) \ No newline at end of file