Attention ! Fermeture imminente du forum d’Elektor (pour en savoir plus, cliquer ici). À partir du vendredi 1er mars il ne sera plus possible de s’identifier sur ce forum, mais son contenu restera disponible en lecture seule jusqu’à la fin du mois. Le 1er avril, il sera fermé définitivement.

FlashBoard USB

Améliorer, modifier, adapter... les circuits qui marchent!

Postby oct » Wed Jul 09, 2008 12:00 am

Cette carte et les outils qui l'accompagnent semblent idéaux. Mais programmer les timers est ardu ! Quelqu'un a-t-il réussi à réaliser une horloge précise (0 seconde de dérive) avec les timers 0, 1 ou 2 ? (microprocesseur AT89C5131).
Voir prog ci dessous:

'Pendule LCD 
'
Dim Nbintt1 As Byte
Dim Millisec As Word
Dim Cent As Byte
Dim Sec As Byte
Dim Mi As Byte
Dim He As Byte
Dim Date As Byte
Dim Mois As Byte
Dim An As Word
Dim Reloadt1 As Word


Reloadt1 = 65535 - 40000 ' = 25535
'Le timer compte de Reload à 65535
'25535 = 0x63bf

Cls
Lowerline
Lcd " === Pendule LCD ==="

P0 = &H55
Waitms 200
P0 = &HAA
Waitms 200

'configuration du timer
Config Timer1 = Timer , Gate = Internal , Mode = 1
Load Timer1 , Reloadt1
Th1 = &H8A
Tl1 = &HCF

Enable Interrupts
Enable Timer1

Priority Set Timer1
Start Timer1
P1 = 0

On Timer1 Increment

Affichage:

If Cent >= 25 Then '25 x 40000 = 1 seconde
Cent = 0
inc Sec
End If
If Cent > 12 Then P0 = &H55 Else P0 = &HAA ' Clignoter les LEDs

If Sec = 60 Then
Sec = 0
inc Mi
End If

If Mi = 60 Then
Mi = 0
inc He
End If

If He = 24 Then
He = 0
inc Date
End If

Upperline
Lcd He ; " : " ; Mi ; " : " ; Sec ; "," ; Cent ; " "

Goto Affichage
End

Increment:

'inc NbIntT1
inc Cent
If P1 = 0 Then P1 = 255 Else P1 = 0 'pour voir le fonctionementà l'oscillo
Return



Les mesures faites à l'oscillo ne corroborent pas les doc d'Intel, Atmel et de Bascom. Est-ce-que le Basic est incompatible avec la mesure du temps ?

Dommage car je me faisais une joie de réaliser des petites applis avec ce micro, ce n'est pas les idées qui manquent . . . .

Help !
oct
 
Posts: 13
Joined: Fri Jan 03, 2014 2:05 pm

Postby acetronics » Thu Jul 10, 2008 12:00 am

Bon jour Oct ( aux puces ? )

Ce petit programme , parcouru à la vitesse de l'éclair, me semble très bien pour ce que tu veux en faire ...

Par contre ... il faut bien t'enfoncer dans le crâne que sa précision , sans "acrobatie" ne sera jamais meilleure que celle de ton Quartz.

Le langage utilisé n'a rien à voir avec la précision : c'est le TMRx qui, régulièrement, signale qu'une période de temps élémentaire s'est écoulée ... ( principe mème de l'interruption ... en passant )
Je veux bien que les interruptions BASIC ne soient pas un modèle de célérité ... mais vu l'absence d'instructions " longues" dans la boucle , ça ne devrait pas ètre un problème.

Tu pourras améliorer quelque peu la précision en jouant sur la valeur de préchargement de ce timer ... mais tomber pile, ça m'étonnerait beaucoup !!!

il va falloir songer à recaler péridiquement ton horloge ( via DCF 77 , par exemple ) si tu veux chatouiller le sacro-saint absolu ...

Alain
acetronics
 
Posts: 247
Joined: Fri Jan 17, 2014 4:43 pm

Postby oct » Thu Jul 10, 2008 12:00 am

Merci pour ta réponse qui me confirme que le Basic n'a rien à voir avec la précision: c'est le quartz et la valeur de rechargement qui font tout.
Je ne cherche pas à faire une horloge de précision atomique, mais simplement un comptage fiable. Ma pendule a une dérive trop importante par rapport à une montre à quartz du commerce.

Quand je donne une valeur de comptage de 40000 microsecondes, l'oscillo montre une période d'environ 35000 microsecondes. Tu comprends mon étonnement !

J'ai essayé un peu toutes les combinaisons de valeurs et de mode de fonctionnement de timer.

En espérant que d'autres lecteurs se pencheront sur cette question, et qu'Elektor fera des articles sur cette carte.

Merci à chacun.
oct
 
Posts: 13
Joined: Fri Jan 03, 2014 2:05 pm

Postby acetronics » Thu Jul 10, 2008 12:00 am

re,

Tant qu'on y est, il y a ça :

http://pictimer.kilu.de/

qui vient de sortir ...

Alain
acetronics
 
Posts: 247
Joined: Fri Jan 17, 2014 4:43 pm


Return to Mon circuit marche

Who is online

Users browsing this forum: No registered users and 1 guest