RTC DS1307 i2c BCDTOASCII

YSBM

New Member
#1
Bonjour,

J'utilise un module DS1307 en liaison i2c avec un picaxe 28X1. Je récupère l'heure et les minutes pour les afficher sur un afficheur LCD. Je souhaiterais mettre des conditions de marche et arrêt d'un relais en fonction de l'heure( hh:mm).Malheureusement c'est la que je bloque. La valeur extraite du DS1307 est en bcd, je passe par bcdtoascii.
L'affichage sur l'écran LCD fonctionne sans problème, j'arrive également a afficher les valeurs de b5 et b6 ( dizaine de minute / unité de minute) ainsi que l'heure en b8 et b9 ( dizaine de heure / unité de heure)a l'aide de sertxd.....Mais Je souhaiterais avoir une variable des heures et une variables de minutes afin de pouvoir rentrer des boucles " if hrs>20 et mn>00 then relais =1" par exemple, mais je n'y arrive pas.
J'ai fait des recherches sur le forum mais je pense ne pas bien mis prendre pour formuler les critères de recherches.
Je recherche donc un peu d'aide ou des indications.

D'avance merci

hi2csetup i2cmaster, %11010000, i2cslow, i2cbyte

hi2cin 1,(mns) 'minutes
sertxd("mns:",mns,13,10)
bcdtoascii mns,b5,b6

hi2cin 2,(hrs) ' heures
sertxd("hrs:",hrs,13,10)
bcdtoascii hrs,b8,b9
sertxd("b8:",b8," b9:",b9,13,10)
hi2cin 3,(jourSem)
bcdtoascii JourSem,b12,b13
sertxd ("Jour de la semaine :",b13,13,10)
 

PieM

Senior Member
#2
Bonjour,

bcdtoascii hrs,b8,b9

dizaine d'heures en binaire: b8 - 48
unités heures en binaire : b9 - 48

heures en binaire = dizaine d'heures en binaire * 10 + unités heures en binaire
 

YSBM

New Member
#4
Une question peut être bête, mais pourquoi retirer 48 ?
Je suppose que je devrais trouver la réponse en regardant la table Ascii ?
 

YSBM

New Member
#7
PieM,

J'ai compris, merci.

MGU,

Votre page a fait parti de ma bible et reste dans ma liste de favoris, merci beaucoup.
 
Top