Connexion
Menu Principal
Recherche
Message du rapport :*
Code de Confirmation*
8 - 2 = ?  
Entrez le résultat de l'expression
Maximum de tentatives que vous pouvez essayer : 10
 

Re: Pré-étude CDI

Objet : Re: Pré-étude CDI
par jojojo sur 21/06/2009 10:59:57

Allez, pour faire patienter, un peu de code.
La noblesse, quoi !
'**************************************************
'CDI SCOUT V1.0
'GT 06/2009
'**************************************************

const device=3H 'define µP
const cmdigbt=17 'cmd igbt
const reluc=24
Dim tour as Integer
Dim RPM as Integer
Dim FlagAllume as byte
Dim Retard as Byte'de 125mS 500trm à 4mS 15000trm
Dim Duree as Integer
Dim Tempo as Integer
Dim T as Integer
Dim U as Integer 'temps avant prochaine etincelle fct regime
Dim V as Integer
Set Picbus High
lcdinit
CSROFF
Locate 0,0
Print "CDI PROGRAMMABLE"
Locate 0,1
Print "G.TREELS 2009"
Delay 3000
cls
CSROFF
ici1: 'initialisation
If in (24)=0 Then'on attend le pre premier pulse
Goto Ici1
End If
On INT(24)=1 gosub CalculRPM'C'est parti en int

Debut:


If FlagAllume=1 Then 'Control autorisation
Flagallume=0
Gosub Attends1 'on attend, fst de 'duree'
Out 17,1 'on allume bougie
Gosub Attends2 'pendant x µs (?)
Out 17,0 'on éteint
End If

goto Debut





CalculRPM:
If in(24)=1 then
Goto CalculRPM
End if
RPM=Capture(24,0) 'En
RPM=4*RPM 'µS et 4=facteur correctif pb3h
Retard=RPM
RPM=RPM/1000 'mS
RPM=60000/RPM 'trs minute
Locate 0,0 'position
Print Dec(RPM,5,1) 'et affichage
Locate 7,0
print "TRM"
csroff 'ext curs
gosub table
FlagAllume=1
Return
'***********************************************************
'pour les tests sans clavier
'Rappel : 1°=1/6*VTM en S
Table:

If RPM<=1000 Then
Duree=Retard 'AV 0°
Return
End If
If RPM<=2000 Then
tempo=((1/6*RPM))*15
Duree=Retard-Tempo 'AV 15°
Return
End If
If RPM<=3000 Then
Tempo=((1/6*RPM))*20
Duree=Retard-Tempo 'AV 20°
Return
End If

Return
'***********************************************************
Attends1:
'Casse pied, pas d'instruction
'd'attente de moins d'1 mS
'donc boucle d'attente "manuelle"
'100µS pour 65535
V=Duree/100 'suis obligé, avec ce compil
For t=1 to V
For u=0 to 65535
Next u
Next t
return

Attends2:
'Durée d'allumage, fixée arbitrairement à 300µS
For T=1 To 3
For U=0 To 65535
Next U
Next T

Return



Là.

Pour les avances choisies, c'est purement arbitraire, pour l'instant.

Leest de bien vérifier à l'oscillo, les timings des signaux.

N'empèche, si je pouvais trouver un détecteur de cliquetis, compatible GY6, je serais moins "timoré".

Allez, vais manger.

A +
Site archivé nous le gardons en ligne pour références techniques https://www.boostycom.fr/