PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Countdown unter Bascom



Dj_Beat
23.11.2007, 07:55
Hallo!
gibt es einen fertigen code für einen Coundown?
habe beim Googln nichts gefunden.
also wenn der Countdown auf 0 ist, soll er was auslössen.
danke

robodriver
23.11.2007, 08:12
Eine etwas genauere Beschreibung wäre schon notwendig...

Was soll passieren? Soll der Countdown angezeigt werden? Wenn ja wo? LCD Display Dotmatrix oder Grafik oder auf einer 7-Segment Anzeige mit einer oder 2 oder 3 Stellen.
Von wo soll der Countdown beginnen?

ansonsten in etwa so:

for a = 10 to 0 step -1
wait 1
next a

gosub jetzt_passiert_was


Gruß Robodriver

Dj_Beat
23.11.2007, 09:05
also ohne ausgabe vom Countdown selbst.
er soll mit 23 Stunden und 45 minuten anfangen..
wenn er bei null ist, soll ein ralais für 15 minuten anziehen.

hast du den kompleten code? für eien AtTiny2313.

robodriver
23.11.2007, 10:25
Was für einen Takt verwendest du denn?
Interner Takt, Externer Quarz oder externer Oszillator?
Weil nach dem richtet sich der quellcode (nach der Taktrate)

Dj_Beat
23.11.2007, 10:27
Externer Quarz, 16 MHz :)

robodriver
23.11.2007, 11:39
Do
for a = 1 to 100
wait 855
next a

set pinx.x

wait 900
reset pinx.x
Loop

End


kommt halt auch drauf an wo das Relais dran hängt.
Hast du auch an die Leistungsverstärkung gedacht?

Gruß

milkbubi
23.11.2007, 11:42
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:



$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

Windi
23.11.2007, 23:15
Vielleicht wäre es besser Dj_Beat kauft sich eine digitale Zeitschaltuhr für die Steckdose. Damit läßt sich so was ganz einfach schalten.

Vitis
24.11.2007, 11:48
oder über Uhrenquarz, dann Timer Interrupt jede Sekunde
und internene Oszillator.