Moin, wahrscheinlich is die antwort sehr einfach...trotzdem kenn ich sie nich ;-). Wie kann man im Programm (AVR studio) bestimmen, dass zum Beispiel ein Motor 20 sekunden läuft, also der entsprechende Pin auf high is? Danke schonmal für die Antworten :-)
amateur schrieb: > Wie kann man im Programm (AVR studio) bestimmen, dass zum Beispiel ein > Motor 20 sekunden läuft, also der entsprechende Pin auf high is? AVR-Studio mit Pin? ;-)
Wie war das nochmal mit den Datenblättern? Das schwarze ist die Schrift, oder?
ok ich wollte jetzt eigl nur wissen wie ich bestimme dass der motor 20 sekunden läuft ( zum beispiel bei einem laufband): - und ich habe keine RTC also praktisch ...der motor liegt auf PB0 DDRB=0x01; PORTB=0x01; ...und dann kommt wie langer der motor (also PB0) auf high bleiben soll...in meinem fall 20 sekunden..und da weiß ich nich wie man das macht
Schau mal ins Datenblatt, der 644 hat mehrere Timer. Nimm einen davon, stelle den als CTC mit 10ms Interrupt ein. Im Interrupt zählst dur einen Zähler runter, der bei Start mit dem Wert für 20 sec geladen wurde. Hat der Zähler 0 erreicht (also nach 20 sec) ein Flag setzen. Das Flag wird ständig in der Main-Loop abgefragt und, wenn es gesetzt ist, der Motor abgeschaltet. Fertig.
amateur schrieb: > ok ich wollte jetzt eigl nur wissen wie ich bestimme dass der motor 20 > sekunden läuft ( zum beispiel bei einem laufband): > > - und ich habe keine RTC > > also praktisch ...der motor liegt auf PB0 > > DDRB=0x01; > PORTB=0x01; > > ...und dann kommt wie langer der motor (also PB0) auf high bleiben > soll...in meinem fall 20 sekunden..und da weiß ich nich wie man das > macht Im einfachsten Fall _delay_ms AVR-GCC-Tutorial
Ich dachte dass der bei delay garnix macht also dass der motor dann nich laufen würde oder täusch ich mich da?
delay hat nichts mit Motor zu tun. delay heißt einfach nur "Däumchen drehen". Und zwar eine definierte Zeit lang. Was du vor dem delay machst (zb den Motor einschalten) und was du nach dem delay machen lässt (zb Motor ausschalten) interessiert doch den delay nicht.
also heißt dass wenn ich vor dem delay einen motor anschalte bleibt er während des delays auch an?
aber es wäre doch unschön so viele delays hintereinander bis 20 sekunden erreicht sind....kann man das dann nich anders machen? wenn das so ist
amateur schrieb: > aber es wäre doch unschön so viele delays hintereinander bis 20 sekunden > erreicht sind....kann man das dann nich anders machen? Man kann schon. Ob du das kannst wage ich zu bezweifeln. Was ist denn an 4 delays mit jeweils 5 Sekunden unschön (jetzt mal davon abgesehen, dass die ganze _delay_ms Sache an sich nicht der Weisheit letzter Schluss ist).
ok du hast recht.. aber wie würdest du das denn machen wenn nich mit delay...ich kann das dann ja im tutorial nachlesen
amateur schrieb: > also heißt dass wenn ich vor dem delay einen motor anschalte bleibt er > während des delays auch an? Warum sollte der denn ausgehen? Was ist das denn für ein Motor? Wenn der eingeschaltet wird, in dem man einen Pin auf 1 zieht, dann läuft der Motor, solange der Pin auf 1 ist. Und ein Pin bleibt solange in seinem letzten Zustand, bis er von deinem Programm einen anderen Zustand zugewiesen bekommt. Ergo: Wenn du den Pin auf 1 stellst und danach den µC 2 Monate lang was anderes machen lässt ehe das Programm den Pin wieder auf 0 stellt, dann bleibt der Pin 2 Monate lang auf 1. Und da dein Motor immer genau dann läuft, wenn der Pin auf 1 ist, läuft daher auch der Motor 2 Monate lang durchgehend. Egal was der µC in der Zwischenzeit macht.
amateur schrieb: > ok du hast recht.. aber wie würdest du das denn machen wenn nich mit > delay...ich kann das dann ja im tutorial nachlesen Ich würde erst mal sagen, du siehst zu, das du das hin kriegst. Du musst schon laufen können, ehe du dich zum New York Marathon anmeldest. Und vor dem Laufen kommt das Gehen. Du lernst jetzt gerade erst mal Krabbeln.
amateur schrieb: > ok du hast recht.. aber wie würdest du das denn machen wenn nich mit > delay...ich kann das dann ja im tutorial nachlesen Du solltest lieber erstmal alle Posts in diesem Thread lesen, da steht es im Prinzip schon drin: Beitrag "Re: Atmega644p länge eines high bzw. low Zustandes bestimmen" Aber wie KHB schon sagte: Karl Heinz Buchegger schrieb: > Du musst schon laufen können, ehe du dich zum New York Marathon > anmeldest. Und vor dem Laufen kommt das Gehen. Du lernst jetzt gerade > erst mal Krabbeln.
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.