Gast
#161479
Hallo, wie kann ich meinen ATmega zum Beispiel 3 Sekunden warten lassen bis er die nächste Aktion ausführt ? MFG Mr. Smith
|
Anzeige
|
ATmega warten lassen
Gast
#161479
Hallo, wie kann ich meinen ATmega zum Beispiel 3 Sekunden warten lassen bis er die nächste Aktion ausführt ? MFG Mr. Smith
Gast
#161480
Dazu müsste man erst mal wissen wie du überhaupt programmierst!!! In "C" oder in "ASM"..... Welche Software?? Am besten macht man es natürlich mit einem Timer!!!! Wenn du in "C" programmierst gibt es auch meist eine "delay"-Funktion! Marcel
Gast
#161481
Tschuldigung hab ich vergessen. Da ich gerade erst anfange arbeite ich nach dem Tutorial auf dieser Seite mit Assembler will aber später auf C umsteigen weil ich C++ kann und Assembler nich MFG Mr.Smith
Gast
#161482
Das kann doch nicht sein das das hier niemand weiss ? Oder ist die Frage so banal das darauf niemand antworten will ? MFG Mr. Smith
Gast
#161483
Hallo, Ich mache es bis jetzt immer mit Zählschleifen (bin auch noch Anfänger). Um diese Zählschleifen zu erstellen nutze ich das Programm "AVR delay loop". Dort kann man einfach die gewünschte Zeitdauer einstellen und das Programm generiert den entsprechenden Quelltext, der per Copy&Paste in den eigenen Quelltext eingefügt werden kann. Nachteil hierbei ist natürlich, dass der Controller unnötig viel arbeitet. Besser wäre es dann sicherlich mit nem Timer, da weiss ich aber auch noch nicht, wie es geht. Gruß Crush
Gast
#161484
Hi, Dass der Controller so mehr zu arbeiten hat, kann man so nicht sagen. Wenn du nämlich einen Timer verwendest, dann musst du den Controller in der Zwischenzeit auch irgendwie beschäftigen, was normalerweise einfach in einer (leeren) Schleife gemacht wird. Ob er darin nun noch zählt oder nicht kommt dann eigentlich ja auch nicht mehr drauf an. Eine Möglichkeit wäre z.B. sowas: ;Eine Weile nix tun Delay: ldi Del1, 0x05 _Loop1: ldi Del, 0x1F _Loop2: dec Del brne _Loop2 dec Del1 brne _Loop1 ret Del1 und Del sind ganz normale Register (.def Del1 = r16 zum Beispiel). Hier kannst du Del1 und Del einfach mit festen Werten laden, damit du eine bestimmte Wartezeit bekommst. Die Wartezeit sollte in etwa (Del1 Del 2) / (Frequenz in Hz) betragen. Ich hoffe, das hat dir geholfen.
Gast
#161485
Vielen Dank für diese guten Antworten Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|