*******************************************************************************
Zones mémoires en EEprom
*******************************************************************************
------------------------------------
Zone mémoire pour la gestion du menu
------------------------------------
Variables de 37 octets de longueur soit:
16 octets pour la Ligne1 LCD
16 octets pour la Ligne2 LCD
1 octet pour la Position Curseur
1 octet pour l'Action --> ( Molette sens horloger = 128)
1 octet pour l'Action <-- ( Molette sens anti-horloger = 129)
1 octet pour l'Action Return ( Bouton )
1 octet pour l'Indice Variable,
ceci nous donne 37 octets X 59 fenêtres = 2183 octets
Fichier "MENU":
+----------------+----------------+------+------+------+------+------+
| 16 octets | 16 octets | 1 oct| 1 oct| 1 oct| 1 oct| 1 oct|
+--+----------------+----------------+------+------+------+------+------+
|N°| ligne1 | Ligne2 |PosCur|Suite+|Suite-|Return|Indice|
+--+----------------+----------------+------+------+------+------+------+
| 1|
|PROGRAMME.DATE.H| 017 | 002 | 005 | 006 | 000 |
| 2||DATE.HEURE.REGLA| 017 | 003 | 001 | 008 | 000 |
| 3||HEURE.REGLAGES.S| 017 | 004 | 002 | 009 | 000 |
| 4||REGLAGES.SORTIE.| 017 | 005 | 003 | 010 | 000 |
| 5||SORTIE.PROGRAMME| 017 | 001 | 004 | 130 | 000 |
| 6||CHOIX_CYCLE.SORT| 017 | 007 | 007 | 014 | 000 |
| 7||SORTIE.CHOIX_CYC| 017 | 006 | 006 | 005 | 000 |
| 8|DATE............|jj/mm/aaaa......| 026 | 128 | 129 | 018 | 006 |
| 9|HEURE...........|HH:MM...........| 018 | 128 | 129 | 019 | 009 |
|10||TEMPERATURE_ECS.| 017 | 011 | 013 | 020 | 000 |
|11||HYSTERESIS.PARAM| 017 | 012 | 010 | 021 | 000 |
|12||PARAMETRES.SORTI| 017 | 013 | 011 | 022 | 000 |
|13||SORTIE.TEMPERATU| 017 | 010 | 012 | 005 | 000 |
|14||CYCLE1.CYCLE2.CY| 017 | 015 | 017 | 131 | 000 |
|15||CYCLE2.CYCLE3.CY| 017 | 016 | 014 | 132 | 000 |
|16||CYCLE3.CYCLE4.CY| 017 | 017 | 015 | 133 | 000 |
|17||CYCLE4.CYCLE1.CY| 017 | 014 | 016 | 134 | 000 |
|18|DATE............|jj/mm/aaaa......| 021 | 128 | 129 | 026 | 007 |
|19|HEURE...........|HH:MM...........| 021 | 128 | 129 | 005 | 010 |
|20|TEMPERATURE_ECS.|65°C............| 018 | 128 | 129 | 011 | 011 |
|21|HYSTERESIS_TEMP_|AMBIANTE = 0,2°C| 030 | 128 | 129 | 027 | 003 |
|22||T_MINI_EXTERIEUR| 017 | 023 | 025 | 028 | 000 |
|23||T_MAXI_CHAUDIERE| 017 | 024 | 022 | 029 | 000 |
|24||TYPE_REGULATION.| 017 | 025 | 023 | 030 | 000 |
+--+----------------+----------------+------+------+------+------+------+
Fichier "MENU" suite:
+----------------+----------------+------+------+------+------+------+
| 16 octets | 16 octets | 1 Oct| 1 Oct| 1 Oct| 1 Oct| 1 Oct|
+--+----------------+----------------+------+------+------+------+------+
|N°| ligne 1 | Ligne 2 |PosCur|Suite+|Suite-|Return|Indice|
+--+----------------+----------------+------+------+------+------+------+
|25||SORTIE.T_MINI_EX| 017 | 022 | 024 | 013 | 000 |
|26|DATE............|jj/mm/aaaa......| 018 | 128 | 129 | 003 | 008 |
|27|HYSTERESIS_TEMP_|RADIATEUR= 0,5°C| 030 | 128 | 129 | 040 | 004 |
|28|TEMPERATURE_MINI|EXTERIEUR= -09°C| 030 | 128 | 129 | 023 | 014 |
|29|TEMPERATURE_MAXI|CHAUDIERE = 80°C| 030 | 128 | 129 | 025 | 012 |
|30|TYPE_REGULATION>|CHAUDIERE.VANNE_| 017 | 031 | 031 | 025 | 000 |
|31|TYPE_REGULATION>|VANNE_3_VOIES.CH| 017 | 030 | 030 | 041 | 000 |
|32||LUNDI.MARDI.MERC| 017 | 033 | 039 | 135 | 002 |
|33||MARDI.MERCREDI.J| 017 | 034 | 032 | 136 | 002 |
|34||MERCREDI.JEUDI.V| 017 | 035 | 033 | 137 | 002 |
|35||JEUDI.VENDREDI.S| 017 | 036 | 034 | 138 | 002 |
|36||VENDREDI.SAMEDI.| 017 | 037 | 035 | 139 | 002 |
|37||SAMEDI.DIMANCHE.| 017 | 038 | 036 | 140 | 002 |
|38||DIMANCHE.SORTIE.| 017 | 039 | 037 | 141 | 002 |
|39||SORTIE.LUNDI.MAR| 017 | 032 | 038 | 059 | 000 |
|40|HYSTERESIS_TEMP_|ECS = 0,5°C.....| 025 | 128 | 129 | 012 | 005 |
|41||OUVRIR/FERMER.AN| 017 | 042 | 042 | 143 | 000 |
|42||ANALOGIQUE.OUVRI| 017 | 041 | 041 | 144 | 000 |
|43|SUPPRIMER.PLAGE.|OUI..........NON| 017 | 044 | 044 | 142 | 000 |
|44|SUPPRIMER.PLAGE.|NON..........OUI| 017 | 043 | 043 | 059 | 000 |
|45|JJJ.............|DEBUT.A.hh:mm...| 029 | 128 | 129 | 046 | 017 |
|46|JJJ........hh:mm|DE.hh:mm.A.hh:mm| 016 | 128 | 129 | 052 | 018 |
|47|SELECTION.CYCLEx|OUI..........NON| 017 | 048 | 048 | 130 | 001 |
|48|SELECTION.CYCLEx|NON..........OUI| 017 | 047 | 047 | 007 | 000 |
|49|CYCLEx...PLAGExx|JJJ.HH:MM.hh:mm.| 016 | 128 | 129 | 044 | 013 |
|50|CYCLEx.TEMP_JOUR|20,5°C..........| 020 | 128 | 129 | 059 | 015 |
|51|CYCLEx.TEMP_NUIT|17,5°C..........| 020 | 128 | 129 | 059 | 016 |
|52|CYCLEx..........|CONTINUER.SORTIE| 017 | 053 | 053 | 055 | 000 |
|53|CYCLEx..........|SORTIE.CONTINUER| 017 | 052 | 052 | 039 | 000 |
|54||SELECTION.AJOUT_| 017 | 055 | 059 | 047 | 000 |
|55||AJOUT_PLAGE.EDIT| 017 | 056 | 054 | 032 | 000 |
|56||EDITER_CYCLE.TEM| 017 | 057 | 055 | 049 | 000 |
|57||TEMP_JOUR.TEMP_N| 017 | 058 | 056 | 050 | 000 |
|58||TEMP_NUIT.SORTIE| 017 | 059 | 057 | 051 | 000 |
|59||SORTIE.SELECTION| 017 | 054 | 058 | 007 | 000 |
+--+----------------+----------------+------+------+------+------+------+
Notes : - Les charactères "|" ne sont pas à prendre en compte.
- Les '.' sont à supprimer et remplacer par des espaces.
- Les numéros de lignes sont seulement là à titre indicatif.
Codes " Action "
------+---------------+
128 +
129 -
130 1 soit valeur de j = Sortie du Menu
131 1 soit Cycle1
132 2 soit Cycle2
133 3 soit Cycle3
134 4 soit Cycle4
135 1 soit lundi
136 2 soit mardi
137 3 soit mercredi
138 4 soit jeudi
139 5 soit vendredi
140 6 soit samedi
141 7 soit dimanche
142 Suppression de la plage sélectionnée
143 0 soit TypVanne = Digitale
144 1 soit TypVanne = Analogique
-------------------------------------------------------------------------------
Structure des plages horaires pour le thermostat
------------------------------------------------
Le principe de stockage en mémoire des différentes plages de chauffe,
se fait dans la mémoire eeprom. Chaque bit représente un quart d'heure,
s'il est à zéro, la température de consigne sera la température de nuit
et s'il est à un, la température de consigne sera la température de jour.
Le système reprend la mémoire de 4 cycles qui contiennent chacun
les 7 jours de la semaine et chaque jour est divisé en 1/4 d'heures.
Ce qui nous fait 24 * 4 bits pour une journée, soit 12 octets.
Un cycle comprend 7 jours, soit 7 * 12 = 84 octets.
Ce qui donne pour les 4 cycles; 84 * 4 = 336 octets en tout.
Remarque : Faire attention que dans chaque octet, les Msb et Lsb
sont inversés par rapport à la logique "horaire".
Dans chaque octet, le bit de poids fort, représente
le premier quart d'heure de la première heure,
et le bit de poids faible représente le quatrième
quart d'heure de la deuxième heure de l'octet.
Le système permet la création de 4 plages par jour.
Une plage consiste en une zone de consigne de jour.
(Cette limitation sera ajoutée dans le mode d'emploi)
Représentation en mémoire
-------------------------
C-J |Heures et quart d'heure (Avant-midi).
Y-O +-------------------------------------
C-U |00000000 00000000 00000000 00000000 00000000 11111111
L-R |00001111 22223333 44445555 66667777 88889999 00001111
E-S |01230123 01230123 01230123 01230123 01230123 01230123
----+-----------------------------------------------------
1-Lu|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Ma|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Me|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Je|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Ve|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Sa|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Di|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Lu|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Ma|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Me|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Je|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Ve|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Sa|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Di|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Lu|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Ma|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Me|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Je|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Ve|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Sa|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Di|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Lu|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Ma|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Me|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Je|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Ve|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Sa|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Di|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
----+-----------------------------------------------------
bits|76543210 76543210 76543210 76543210 76543210 76543210
Byte| 0 1 2 3 4 5
C-J |Heures et quart d'heure (Après-midi).
Y-O +-------------------------------------
C-U |11111111 11111111 11111111 11111111 22222222 22222222
L-R |22223333 44445555 66667777 88889999 00001111 22223333
E-S |01230123 01230123 01230123 01230123 01230123 01230123
----+-----------------------------------------------------
1-Lu|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Ma|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Me|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Je|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Ve|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Sa|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
1-Di|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Lu|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Ma|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Me|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Je|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Ve|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Sa|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
2-Di|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Lu|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Ma|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Me|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Je|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Ve|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Sa|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
3-Di|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Lu|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Ma|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Me|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Je|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Ve|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Sa|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
4-Di|xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
----+-----------------------------------------------------
bits|76543210 76543210 76543210 76543210 76543210 76543210
Byte| 6 7 8 9 10 11
Exemple de programmation pour un cycle.
---------------------------------------
Définition des plages "Température Jour".
-----------------------------------------
Lundi : [06h30 à 09h45] & [16h30 à 22h15]
Mardi : [06h30 à 09h45] & [16h30 à 22h15]
Mercredi : [06h30 à 22h15]
Jeudi : [06h30 à 09h45] & [16h30 à 22h15]
Vendredi : [06h30 à 09h45] & [16h30 à 23h30]
Samedi : [08h00 à 23h30]
Dimanche : [07h30 à 22h45]
Contenu de l'EEprom
-------------------
C-J |Heures et quart d'heure (Avant-midi).
Y-O +-----------------------------------------------------
C-U |00000000 00000000 00000000 00000000 00000000 11111111
L-R |00001111 22223333 44445555 66667777 88889999 00001111
E-S |01230123 01230123 01230123 01230123 01230123 01230123
----+-----------------------------------------------------
1-Lu|00000000 00000000 00000000 00111111 11111110 00000000
1-Ma|00000000 00000000 00000000 00111111 11111110 00000000
1-Me|00000000 00000000 00000000 00111111 11111111 11111111
1-Je|00000000 00000000 00000000 00111111 11111110 00000000
1-Ve|00000000 00000000 00000000 00111111 11111110 00000000
1-Sa|00000000 00000000 00000000 00000000 11111111 11111111
1-Di|00000000 00000000 00000000 00000011 11111111 11111111
----+-----------------------------------------------------
bits|76543210 76543210 76543210 76543210 76543210 76543210
Byte| 0 1 2 3 4 5
----+-----------------------------------------------------
C-J | Heures et quart d'heure (Après-midi).
Y-O +------------------------------------------------------+
C-U | 11111111 11111111 11111111 11111111 22222222 22222222|
L-R | 22223333 44445555 66667777 88889999 00001111 22223333|
E-S | 01230123 01230123 01230123 01230123 01230123 01230123|
----+------------------------------------------------------+
1-Lu| 00000000 00000000 00111111 11111111 11111111 10000000|
1-Ma| 00000000 00000000 00111111 11111111 11111111 10000000|
1-Me| 11111111 11111111 11111111 11111111 11111111 10000000|
1-Je| 00000000 00000000 00111111 11111111 11111111 10000000|
1-Ve| 00000000 00000000 00111111 11111111 11111111 11111100|
1-Sa| 11111111 11111111 11111111 11111111 11111111 11111100|
1-Di| 11111111 11111111 11111111 11111111 11111111 11100000|
----+------------------------------------------------------+
bits|76543210 76543210 76543210 76543210 76543210 76543210 |
Byte| 6 7 8 9 10 11 |
----+------------------------------------------------------+
*******************************************************************************