Archiv verlassen und diese Seite im Standarddesign anzeigen : Kaminfeuerprogramm Hilfe ich bin Anfänger !
Import-Script
02.01.2002, 18:31
Hallo Leute, vieleicht hat ja jemand einen Tip oder ein paar Link's(Beispielprog's möglichst in deutsch)für mich. <BR> <BR>Kaminfeuerprogramm (die Theorie): 4 Zeitschleifen(an-aus), 0.5sec., 1.5sec., 3sec., 7sec., diese 4 Ausgänge sollen zusammengefasst auf eine Leitung über einen Optokoppler und einen Triac eine Lampe ansteuern, so das ein wirres Flackern dabei rauskommt. Da der MC aber nur eine Schleife zur Zeit abarbeiten kann, habe ich ein Problem mit der parallelen Ausgabe. <BR> <BR>Danke Holgi
Import-Script
02.01.2002, 19:10
Hallo Holgi, <BR> <BR>Hast du einen MC der 8051 Familie? <BR> <BR>Es giebt möglichkeiten die einzelnen Schleifen zu mit Jumps zu schachteln benutzt du das Prog. Studio?
Import-Script
02.01.2002, 19:41
Ach so, klar. Ich benutze Prog-Studio und 89C2051. <BR> <BR>Sorry
Import-Script
02.01.2002, 23:33
Hallo Holgi, <BR> <BR>such den größten gemeinsamen Teiler: 0,5s <BR>Bau eine Zeitfunktion dafür und zähle verschiedene Bytes runter. <BR>Z.B. setze ein Byte auf 14, zähle runter bis 0, setze wieder auf 14 usw. Schon hast Du die 7s. <BR>Nimm analog ein Byte für 1,5s und 3s und fertig. <BR>Die damit erzeugte Folge wiederholt sich dann alle 21s (= kleinstes gemeinsames Vielfaches). <BR> <BR>Was ich mich jedoch frage, was sollen diese 4 Leitungen mit dem Triac machen ??? <BR> <BR> <BR>Wie ich sowas machen würde ? <BR> <BR>Ich würde das ganze in C schreiben, da gibt es eine Pseudo-Zufallsfunktion: int rand(); in STDLIB.H. <BR> <BR>Dann würde ich mit INT0 einen Nulldurchgangsdetektor aufbauen und damit jede Halbwelle einen Timer starten. Diesen würde ich mit den Zufallszahlen voreinstellen um so eine Phasenanschnittssteuerung zu bewirken. D.h. die Helligkeit wird entsprechend der Zufallszahlenfolge gesteuert. <BR> <BR>Diese Pseudozufallsfolge wird durch ein 31-Bit-Schieberegister erzeugt, d.h. wenn alle 20ms ein neuer Wert ausgegeben wird, wiederholt sie sich alle 497 Tage. <BR>Vielleicht hat ja jemand so eine Pseudozufallsfunktion auch in Assembler ? <BR> <BR> <BR>Peter
Import-Script
02.01.2002, 23:50
Bevor ich so'ne wirre Mission starten würde, hätte ich schon lange eben schnell drei NE555 auf ne Lochraster zusammengewürfelt und das über Dioden auf einen Optokoppler gegeben. Fertig.
Import-Script
03.01.2002, 07:36
@Peter, <BR> <BR>schönen Dank für deine Antwort ich werd's mal so ausprobieren. <BR> <BR>@OC, <BR> <BR>hab ich schon aufgebaut siehe <BR><A HREF="http://www.elektroniktreff.net/Schaltungen/Kaminfeuer.htm" TARGET="_top">http://www.elektroniktreff.net/Schaltungen/Kaminfeuer.htm</A> <BR>Eigendlich geht es mir um die Programmierung und nicht um die Schaltung selbst. <BR> <BR>Danke euch Gruss Holgi
Import-Script
07.01.2002, 08:22
@Peter oder jemandem der weiterhelfen kann, <BR> <BR>hast du vieleicht ein Beispiel (in Assembler) für einen solchen einen zeitlichen Ablauf? Irgendwie spielt mein Kopf im Moment nicht mit - ich komm einfach nicht auf die richtige Lösung obwohl sie sicherlich einfach ist. <BR> <BR>Gruss Holgi
Import-Script
07.01.2002, 11:40
ich glaub ich hab's doch geschafft. Allerdings habe ich, wenn ich mich nicht irre einen Binärzähler neu erfunden. <BR> <BR>main: SETB P1.3 <BR> LCALL sec3 <BR> CLR P1.3 <BR> LCALL sec3 <BR>JMP main <BR> <BR>sec3: SETB P1.2 <BR> LCALL sec2 <BR> CLR P1.2 <BR> LCALL sec2 <BR>RET <BR> <BR>sec2: SETB P1.1 <BR> LCALL sec1 <BR> LCALL sec1 <BR> CLR P1.1 <BR> LCALL sec1 <BR> LCALL sec1 <BR>RET <BR> <BR>sec1: SETB P1.0 <BR> LCALL wait_10ms <BR> CLR P1.0 <BR> LCALL wait_10ms <BR>RET <BR> <BR>wait_10ms: <BR> #IF NOT DEBUGGING <BR> MOV R6,#215 <BR> _wait_s3: MOV R7,#45 <BR> DJNZ R7,$ <BR> IF NOT BIT P3.7 THEN JMP start <BR> DJNZ R6,_wait_s3 <BR> #END IF <BR> RET <BR> <BR>Gruss Holgi
Powered by vBulletin® Version 4.1.7 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.