sBronco
18.07.2011, 19:00
Ich bastell grade an einer 6 Kanal Lüftersteuerung, benutze dafür einen Mega128.
Mit dem Timer2 erzeuge ich eine 10ms Basiszeit via Interrupt,
dann benutze ich noch Int0-Int3 und Int6 + Int7 für die Drehzahlüberwachung.
Da habe ich jetzt verschiedene Methoden ausprobiert zB. 100ms warten >> Impulse umrechnen oder 600ms warten > Impulse * 50 = Drehzahl.
Das funktioniert auch prächtig, eine Zeitlang, so eine knappe Minute ungefähr, danach funktioniert immer noch alles, nur die For-Next Schleife,
in der meine Temp/Leistungs/Drehzahl- Anzeige aktuallisiert wird, bleibt bei 0, obwohl die lautet:
For uich = 1 to 6
Locate Zeile(uich) , Spalte(uich) : LCD uich
LEISTUNGSANZEIGE ' MACRO Leistung
TEMPERATURANZEIGE ' MACRO Temperatur
DREHZAHLANZEIGE ' MACRO Drehzahl
Next uich
uich beginnt eigentlich mit 1, in dem Fall ist und bleibt das allerdings 0.
es liegt an meiner Drehzahlüberwachung:
der Interrupthandler
FANISR:
incr FANSIG
Return
die Aktivierung:
Select Case fanchannel
Case 1:
cFan = 0
Enable Int3
Case 2:
'Enable Int2
cFan = 0
Case 3:
'Enable Int1
cFan = 0
Case 4:
'Enable Int0
cFan = 0
Case 5:
'Enable Int7
cFan = 0
Case 6:
'Enable Int6
cFan = 0
End Select
FANSIG = 0
es ist immer nur 1 Int aktiv.
zu beginn der Anzeigeroutine steht: Disable Interrupts
zum Ende Enable Interrupts.
werden da alle Enabled? also auch die die nicht enabled waren?
Mit dem Timer2 erzeuge ich eine 10ms Basiszeit via Interrupt,
dann benutze ich noch Int0-Int3 und Int6 + Int7 für die Drehzahlüberwachung.
Da habe ich jetzt verschiedene Methoden ausprobiert zB. 100ms warten >> Impulse umrechnen oder 600ms warten > Impulse * 50 = Drehzahl.
Das funktioniert auch prächtig, eine Zeitlang, so eine knappe Minute ungefähr, danach funktioniert immer noch alles, nur die For-Next Schleife,
in der meine Temp/Leistungs/Drehzahl- Anzeige aktuallisiert wird, bleibt bei 0, obwohl die lautet:
For uich = 1 to 6
Locate Zeile(uich) , Spalte(uich) : LCD uich
LEISTUNGSANZEIGE ' MACRO Leistung
TEMPERATURANZEIGE ' MACRO Temperatur
DREHZAHLANZEIGE ' MACRO Drehzahl
Next uich
uich beginnt eigentlich mit 1, in dem Fall ist und bleibt das allerdings 0.
es liegt an meiner Drehzahlüberwachung:
der Interrupthandler
FANISR:
incr FANSIG
Return
die Aktivierung:
Select Case fanchannel
Case 1:
cFan = 0
Enable Int3
Case 2:
'Enable Int2
cFan = 0
Case 3:
'Enable Int1
cFan = 0
Case 4:
'Enable Int0
cFan = 0
Case 5:
'Enable Int7
cFan = 0
Case 6:
'Enable Int6
cFan = 0
End Select
FANSIG = 0
es ist immer nur 1 Int aktiv.
zu beginn der Anzeigeroutine steht: Disable Interrupts
zum Ende Enable Interrupts.
werden da alle Enabled? also auch die die nicht enabled waren?