HAllo, ich will mir ein Thermometer bauen, der ab einer bestimmten Temperatur ein Relais ansteuert, desweiteren soll das Programm noch über einen Füllstandsanzeiger verfügen. Wie kann ich nun das Programm des Termometers und gleichzeitig den Füllstandsmesser ausführen?? Sodass die Bargraphanzeige etwas anzeigt und gleichzeitig auch das Relais arbeitet.
Hallo Timo, das sind vermutlich alles keine zeitkritischen Aufgaben. Du schreibst einfach Unterroutinen für jede Aufgabe und rufst sie nacheinander in der Endlosschleife des Hauptprogramms auf. Grüße Matthias
Hallo Matthias, ja zeitkritisch sind die nicht. kannst du mir ein kurzes Beispiel oder Stichworte zu den Routinen geben. Die müssen ja dann so aufgerufen werden, dass man das optisch nicht merkt. Nicht das da eine Sekunde lang die Temperatur auf den 7Segmentanzeigen angezeigt wird und dann erst wird der Bargraph aktiviert und die TempAnzeige ist aus. Das muss irgendwie gleichzeitig "leuchten"
Also überwiegend arbeiten meine "einfachen" Programme nach dem EVA-Prinzip (Eingabe-Verarbeitung-Ausgabe): MainLoop call eingabe ; Einlesen aller Sensoren, Taster, usw. call verarbeitung ; Verarbeiten aller Daten call ausgabe ; Ausgaben auf LDC, LED, Beeper... goto MainLoop ; und wieder von vorne Diese Schleife wird dann ständig durchlaufen (i.d.R. >100 mal je Sekunde). Du kannst auch z. B. über einen Timer dafür sorgen, das die Schleife in festen Intervallen abgearbeitet wird. Vieleicht ist das ein Ansatz für dich.
Also das dürfte kein Problem sein... sobald du einen Port beschrieben hast bleibt das gespeichert, solange du nix neues reinschreibst und die Spannungsversorgung erhalten bleibt ;) Also könntest du theoretisch ohne Endlosschleife arbeiten - einmal was reinschreiben und das bleibt trotzdem drin... Und ein Unterprogramm abzuarbeiten dauert normal nur ein paar ms, also nicht ewig - da müsste es schon verdammt viel Programmcode sein... Kannst ja spasshalber in ner Endlosschleife eine LED an nem Port abwechselnd ein-/ausschalten, dann wird die LED zwar nur halb so hell leuchten, aber ein Flimmern wirst du nicht wahrnehmen können. Und so hast du übrigens nebenbei schon mit der Pulsweitenmodulation gearbeitet ;)
Danke für die Tipps! Kann ich eigentlich vom Portd auch nur Pin 1,2,3 als Input und die anderen als Output verwenden? Gruß und nochmals danke
Hallo, klar! Das sollte das kleinste Problem sein ;) Gruß, Christian
Tja, nun muss ich sie wohl doch rausholen, die Kristallkugel! Welchen µC verwendet er den wohl?
Mhhh die Kristallkugel sagt.........2 ich sehe eine 3 , eine 1 oh eine 3. Ich kombiniere einen 2313
Hallo, so, etz müssten wir der Glaskugel nur noch entlocken welche Sprache denn zur Programmierung verwendet wird, dann könnte dir schon geholfen werden ;-)
Wieso, kann man µC noch anders als in Assembler programmieren? ;-)
Sorry hab ich ganz vergessen (; Ich verwende Bascom. Ich habe die Lösung vielleicht scon rausgefunden. Zumindest funktioniert es so: Ich habe geschrieben: Config Portd= &B00011111.
Ja, funzt auch. Du kannst's aber auch mit DDRD = &B00011111 machen, wobei eine 1 einen Ausgang und eine 0 einen Eingang darstellt (aber das weißt du ja schon...). Viel Erfolg noch! Gruß, Christian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.