Also erstmal verstehe ich nicht, warum du lieber mehrere Threads mit den gleichen Grundlagen Fragen aufmachst, als einmal in den Wissen Bereich zu sehen. Da ist im Bereich Timer wunderbar erklärt, wie man sowas macht. Außerdem gibt es dort ein Programm nahmens RN-AVR mit dem man sich die benötigten Werte wie Prescaler, Vorgabewert... berechnen lassen kann.
Das kommt bei deiner Aufgabenstellung dann raus:
Code:
$regfile = "2313def.dat"
$crystal = 16000000
Config Timer1 = Timer, Prescale = 256 'Hier wird der Timer und der Teiler festgelegt
'Der Port mit der dritten LED auf RN-Control wird als Ausgang programmiert
Config Pinc.2 = Output
'Hier geben wir der Definition einen schöneren Namen
Led3 Alias Portc.2
'Hier wird das Unterprogramm festgelegt, das
'in dem von ihnen eingestellten Intervall aufgerufen wird
On Timer1 Timer_irq
'Diese Vorgabe wurde berechnet um die genaue Intervallfrequenz zu erreichen
Const Timervorgabe = 3036
'Hier werden die Timer aktiviert
Enable Timer1
Enable Interrupts
'Hier ist die Programmhauptschleife
Do
'Hier könnte Ihr Hauptprogramm stehen
Loop
'Dies ist der Programmteil, der in dem von ihnen gewählten
'Intervall aufgerufen wird
Timer_irq:
Timer1 = Timervorgabe
Toggle Led3
Return
Der Programmteil generiert ein 1Hz Signal und lässt jetzt die LED3 im Sekundentakt an und aus gehen. Du kannst jetzt eine Variable in der Timer_irq bis auf 85500 hochzählen lassen in deinem Hauptprogramm fragst du die Variable ab mit " if variable = 85500 then set lüfter"
Das gleiche Spiel machst du dann für die 15 Minuten und schaltest genauso wieder aus.
mfg milkbubi
Lesezeichen