PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Programmiersprache "C"



Tobi G.
13.12.2007, 10:45
Hallo,
ich weiß jetzt nicht genau, ob ich das hier in die richtige Kategorie schreibe, aber ich hätte sonst nichts passendes gefunden, außerdem gehts ja eigentlich auch um den Asuro.
Mein Problem ist, dass ich nicht weiß, wie ich die Dauer eines Vorgangs programmieren soll, z.B. dass sich ein Antriebsmotor für eine bestimmte Zeit bewegt. Mit "Msleep" funktioniert es im Programmers Notepad jedenfalls nicht (ich weiß auch garnicht, ob das überhaupt dafür gedacht ist). Vielen Dank schonmal im Voraus!!
Viele Grüße

Tobi

askazo
13.12.2007, 11:02
Da gibt es generell 2 Möglichkeiten.
Zum einen mit der von Dir schon angesprochenen Sleep-Funktion - was funktioniert da denn bei Dir nicht?
Die Sleep-Funktion hat den Nachteil, das der Controller während des wartens keine anderen Befehle ausführen kann (ausser einen Interrupt)

Die zweite Möglichkeit wäre, die Zeit über einen Timer zu steuern.
Ist ein wenig kokmplexer als mit Sleep, aber eigentlich die elegantere Lösung.

askazo

Tobi G.
13.12.2007, 11:13
Ich hab das mit "Msleep" in der Asuro Libv271 in einem Beispiel gesehen.
Das mit dem Timer hört sich interessant an. Wo kann ich denn nachlesen, wie man den Timer anwendet? Verwendet jemand "Easy Asuro" ?; ich bekomme das Programm irgendwie nicht auf den PC. Ich kanns zwar downloaden und dann das Setup durchführen, aber danach nicht aufrufen, woran kann das liegen?
Viele Grüße

Tobi

sloti
13.12.2007, 17:45
Probier Easy Asuro wieder zu deinstallieren und dann probiers nochmal. Aber ich würde doch lieber versuchen mich etwas mit C zu beschäftigen anstatt Easy Asuro zu benutzen. Man hat einfach viel mehr Möglichkeiten Programme zu schreiben.

mfg
Erik

damaltor
13.12.2007, 17:51
mit easyasuro wirst du wenig erfolg haben - es ist in erster linie zum rumspielen gedcht. probiere lieber die arbeit mit C.

die funktion Msleep() ist nur in der erweiterten library, welche hier im forum entstanden ist, verfügbar und kann mit der library von der cd nicht verwendet werden. bitte nutze die suchfunktion um die lib herunterzuladen und zu installieren.

programmers notepad ist nur ein editor - genau wie zB notepad. es hat mit der programmierung eigentlich nichts zu tun, nur dass es den quellcode bunt macht für die übersichtlichkeit und dass man die make und make clean befehle in die menüs aufnehmen kann.

Timer sind (relativ) kompliziert, da sollte man sich in der architektur der AVRs schon besser auskennen und mal mit interrupts gearbeitet haben. ich empfehle dir, das zu testen wenn msleep funktioniert ;)

Tobi G.
13.12.2007, 18:15
Danke, ich hab Easy Asuro zum laufen bekommen, aber als ich schon die Anleitung laß, gefiel es mir nicht, da es ungefähr garnichts mit C gemeinsam hat und außerdem kann man kein Programm aufspielen, mit dem Asuro aus dem Zimmer gehen und das Programm irgendwo anders benutzen.
Ich kann also z.B. mit dem Beispiel "Kollision" aus der libv271 mit dem "make" und "clean" das eigene Programm schreiben und benützen??
Was ist, wenn ich z.B. ein Programm schreibe, dass dann der Asuro einer Linie folgt?; kann ich dann das gleiche "make" und "clean" aus dem Beispiel "Kollision" nehmen, oder muss ich dann die beiden aus dem Beispiel "line" nehmen?
(Waren jetzt nur Beispiele, falls ich dann mal irgendwas anderes machen wollte)
In der Anleitung stand, dass man nie zwei Sachen gleichzeitig ausführen kann; heißt das, dass ich z.B. nie "line" und "kollision" in ein Programm aufnehmen kann, oder dass ich z.B. nie LED´s gleichzeitig schalten kann?
Sorry dass ich so viel frage...
Viele Grüße

Tobi

damaltor
13.12.2007, 18:53
aaalso.

make ist ein externes programm, dass deinen getippten programmcode in ein format überführt. es funktionirt für jedes von dir getippten programmcode.

man kann nie zwei dinge EXAKT gleichzeitig durchführen. aber meist reicht es, dinge schnell hintereinander auszuführen. der prozessor schafft 8.000.000 befehle PRO SEKUNDE, so dass zwei nacheinader stehende befehle für menschen nicht mehr unterscheidbar sind.

Tobi G.
15.12.2007, 10:07
Stimmt.
Danke!!
Viele Grüße

Tobi