Electromag1 Circuits électroniques et Picaxes

Petit site pour ceux qui bricolent en électronique en général et sur les PICAXES en particulier.
Les PICAXES sont des microprocesseurs (PIC de Microship) programmables en BASIC. Pleins de qualités, pas chers, ultra faciles à programmer.
Tout (ou presque) est sur le site du distributeur Gotronic (voir les liens).
Les pages  seront ajoutées ou modifiées petit à petit.
Dans le but d'améliorer ce blog, communiquez moi vos remarques et les erreurs que vous pouvez constater.
Pour me contacter: Envoyez un mail à l'adresse : mag1mic@free.fr .  Tout message reçoit une réponse
Pour retourner au menu, Cliquer sur "LISTE DES PAGES", ici ou en haut de la colonne de gauche
Pour laisser un message, allez dans le "LIVRE D'OR"
Bonne visite
 
 

Horloge fille IBM

avec RTC DS3231

L'horloge fille IBM cadencée par les alternances secteur n'a pas donné les résultats espérés.
Le choix s'est ensuite tourné vers la RTC DS3231. On la trouve à partir de 50cts en Chine ou 5 euros en France avec sa batterie (pile). Dans cette application, la sauvegarde (la pile) est inutile, seules nous intéressent les impulsions 1Hz sur la sortie SQW.
Le schéma:

Avec cette solution, la précision est celle de la RTC, déclarée "de haute précision".
Le code:
En pseudo multitâches pour séparer le comptage de l'envoi des pulses IBM
Il reste une patte libre qui pourrait être utilisée pour régler la largeur des pulses ou la vitesse de l'avance rapide
Particularité: le "hi2csetup" ne sert que pour l'initialisation de la RTC, après cela, le "hi2csetup off" rend aux broches C.1 et C.2 leur fonction initiale.
Les tâches commencent par une étiquette :start0:, start1:,etc .  Il y a 4 tâhes possibles sur le 08M2
start0:  initialisation RTC et envoi dun pulse sur l'horloge
start1:  comptage des secondes RTC
start2:  avance coup par coup
start3:  avance rapide 
;Horloge IBM avec RTC DS3231
;MM 01/04/23
start0: ;initialisation et pulses IBM
#picaxe 08M2
#no_data
symbol coup=pinC.1    ;I2C scl
symbol rapid=pinC.2    ;I2C sda
symbol DS=pinC.3
symbol IBM=C.0
symbol sec=b1
symbol minut=bit0
dirsC=%0001
pullup %11110
     hi2csetup i2cmaster, %11010000, i2cslow, i2cbyte    
   hi2cout 0, (0,0,0,0,0,0,0,%00010000)   ;mise en mémoire EEPROM
   hi2cout 14,(0)        ;registre control DS3231
    pause 300
    hi2csetup off        ;C.1 et C.2 ne sont plus I2C
    do    
        do loop while minut=0    ;on attend 0
        high IBM : pause 200 : low IBM
        minut=0          ;reset min 0        
    loop
start1:    ;comptage secondes RTC
    do
        do loop while DS=0    ;on est à 0
        do loop while DS=1    ;on est passé à 1
        inc sec                    ;on est à 0,
        if sec>=60 then
            minut=1
            sec=0  ;reset sec
        endif
    loop
start2:        ;avance coup par coup    
    do
        do loop while coup=1    ;attente coup=0  
        pulsout IBM,20000        ;on est à 1            
        do loop while coup=0    
        sec=0    ;RAZ compteur
    loop
start3:        ;avance rapide    
    do    
do loop while rapid=1  ;attente rapid=0
        do                
            pulsout IBM,20000        ;on est à 1
            pause 300        ;temps entre 2 pulses (à confirmer)            
        loop while rapid=0
        sec=0        
    loop       



Créer un site
Créer un site