- 3D-Druck Einstieg und Tipps         
Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 45

Thema: Multitasking

Hybrid-Darstellung

Exodus Multitasking 19.06.2006, 09:38
Kaiser-F Nicht wirklich, aber du... 19.06.2006, 10:32
Exodus hmm.... ok ich will dass... 19.06.2006, 10:35
Rage_Empire nimm 2 AVRs, dann kannst du... 19.06.2006, 10:50
bekoeppel Auf www.avrfreaks.net gibt es... 19.06.2006, 11:05
Kaiser-F Wenn du zB zwei sachen... 19.06.2006, 11:06
Felix G Naja, die Meisten meinen wenn... 19.06.2006, 11:37
Exodus avr-freaks.net funktioniert... 19.06.2006, 12:18
Kaiser-F Stimmt....... 19.06.2006, 16:09
izaseba und wo liegt das Problem??? ... 19.06.2006, 16:18
Vitis Was man machen kann, die... 20.06.2006, 01:32
Kaiser-F Genau.... Es ist echt... 20.06.2006, 07:38
Vitis Wobeis aber auch so schöne... 20.06.2006, 18:57
Kaiser-F OK, das stimmt... aber das... 20.06.2006, 19:00
bluelight_electronic weil man nicht immer... 20.06.2006, 20:13
Exodus merker sind interrupts oder... 21.06.2006, 10:34
Kaiser-F nö... du setzt zB ein bit... 21.06.2006, 10:37
Exodus versteh dich nicht ganz !! ^^... 21.06.2006, 10:43
Kaiser-F Kein Problem... Also,... 21.06.2006, 11:11
Exodus kannst du es mir in assembler... 21.06.2006, 12:01
Kaiser-F Da beisst es leider aus...... 21.06.2006, 12:04
Exodus und ich nicht so gut in C!... 21.06.2006, 12:07
Kaiser-F Also, sagen wir "merker" sei... 21.06.2006, 12:13
Exodus nien nicht so richtig! sorry!... 21.06.2006, 12:42
Exodus ah ich glaube habs jetzt so... 21.06.2006, 12:49
SprinterSB Es genügt doch ein Timer...... 21.06.2006, 13:01
Exodus versteh dich nicht ganz... 21.06.2006, 13:05
SprinterSB Stell dir vor du hast eine... 21.06.2006, 13:22
Exodus so ich verstehe nur assembler... 21.06.2006, 13:25
Felix G Ein Interrupt ist eine... 21.06.2006, 13:29
SprinterSB Das ist kein C, irgendein... 21.06.2006, 13:30
ogni42 Dann nochmal als Fließtext.... 21.06.2006, 13:30
Kaiser-F Aus dir machen wir schon noch... 21.06.2006, 13:47
Kaiser-F Um auf das im Hauptprogramm... 21.06.2006, 13:53
Exodus wie soll ich 25ms... 21.06.2006, 14:21
Kaiser-F Die Variablen frägst du ab!... 21.06.2006, 14:28
Exodus Ich weiß nicht wie ich dass... 21.06.2006, 15:05
Kaiser-F Hm.. mit assembler kenn i ich... 21.06.2006, 15:10
Exodus Gibts hier irgendwo im... 21.06.2006, 15:13
izaseba O man, das ist jetzt echt... 21.06.2006, 16:49
Exodus Ich glaube ihr versteht mich... 22.06.2006, 08:03
SprinterSB Doch, es wird wohl verstanden... 22.06.2006, 08:26
Kaiser-F Quasi ein Lauflicht?:... 22.06.2006, 08:47
Exodus warum funktioniert dass... 22.06.2006, 10:03
izaseba Ich hab Dir am Anfang grob... 22.06.2006, 16:18
Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2006
    Beiträge
    153

    Multitasking

    Kann ich beim ATMEGA8535 Multitasking anwenden also programmabläufe parallel ablaufen lassen??
    BITTE um Rückantwort

    MFG
    Michael

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2005
    Ort
    Bayern
    Alter
    38
    Beiträge
    795
    Nicht wirklich, aber du kannst das Programm ja so schreiben, dass er zB nicht in warteschleifen geht oder so, sondern diese mit hilte des Timers macht...

    Also dass der programm immer durchläuft. Und nicht irgendwo hängenbleibt. Und Zeitroutinen über eine Variable im Timer runterzählen lassen, und sie immerwieder mit if überprüfen...
    Gruß,
    Franz

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2006
    Beiträge
    153
    hmm....
    ok ich will dass machen!

    will PA0 -PA7 nacheinander leuchten (0,25s)
    gleichzeitig soll PB0 - PB3 nacheinander leuchten (0,50s)

    ah ja noch was ich programmiere in Assembler nicht in C!

    MFg
    Michael

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    nimm 2 AVRs, dann kannst du auch 2 Dinge gleichzeitig (realtime) laufen lassen

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    11.05.2005
    Ort
    Trimmis
    Alter
    37
    Beiträge
    47
    Auf www.avrfreaks.net gibt es ein Multitasking-Script. Natürlich nicht wirkliches Multitasking, sondern nur so Pseudo-Mässig.

    lg
    Und sie dreht sich doch...
    http://www.muasch.com
    http://robotik.muasch.com

    Definitiv kein Bascom-User

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2005
    Ort
    Bayern
    Alter
    38
    Beiträge
    795
    Wenn du zB zwei sachen zeitgesteuert machen willst, und neben bei noch was anderes ausgeführt werden soll, dann kannst du das so machen...

    Dein Timer führt diese funktion 10 mal pro sekunde aus (zB!):

    Code:
    void TIMER ( void ){
    
    if( timervar1 ){ timervar1 --; }
    if( timervar2 ){ timervar2 --; }
    if( timervar3 ){ timervar3 --; }
    
    }
    In der Hauptfunktion kannst du dann die Sachen so steuern:

    Diese Funktion wird immer Durchlaufen:

    if( timervar1 ){ "ES WERDE LICHT" }else{ "ES WERDE DUNKEL" }

    Bei irgend ner Bedingung soll 10 Sekunden lang LICHT WERDEN:
    also setzt man timervar1 auf 100:

    timervar1 = 100;

    Solange nun timervar1 UNGLEICH 0 ist, leuchtet die LED.

    Und du kannst den Controller bequem was anderes machen lassen....

    EDIT1: Richtiges Multitasking gehd glaub ich nicht mal bei handelsüblichen PCs (ausser bei den DUAL CORE PROZESSOREN, da glaub ich geht es...)

    EDIT2: timervar1..3 sind globale Variablen!
    Gruß,
    Franz

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    42
    Beiträge
    1.780
    Naja, die Meisten meinen wenn sie von "richtigem" Multitasking reden das sog. "preemptive multitasking" wie es z.B. bei Desktop-Betriebssystemen zum Einsatz kommt.

    Der Vorteil dabei ist, daß quasi mehrere Programme völlig unabhängig voneinander laufen können. Die Programme bekommen dann jeweils für eine bestimmte Zeit die CPU ganz für sich allein, und müssen die Kontrolle auch nicht freiwillig wieder abgeben. Das ist natürlich sehr praktisch, denn selbst wenn ein thread hängen bleibt, laufen die anderen noch ganz normal weiter.

    Natürlich ist das wesentlich aufendiger zu realisieren, und man braucht ziemlich viel Speicher. (denn immer wenn einem thread die Kontrolle entzogen wird, müssen sämtliche Register und der komplette Stack irgendwo gesichert werden)
    So viele Treppen und so wenig Zeit!

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2006
    Beiträge
    153
    avr-freaks.net funktioniert nicht!

    MFG
    Michael

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2005
    Ort
    Bayern
    Alter
    38
    Beiträge
    795
    Gruß,
    Franz

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    will PA0 -PA7 nacheinander leuchten (0,25s)
    gleichzeitig soll PB0 - PB3 nacheinander leuchten (0,50s)
    und wo liegt das Problem???

    Mache z.B. einen Timer mit 0,25s Zeitbasis.

    Beim erstem Überlauf veränderst Du PA und prüftst ob ein Merker gesetzt ist, wenn nein setzt Dir einen Merker.

    Beim zweitem veränderst Du PA sowieso und schaust ob Merker gesetzt ist und wenn ja änderst Du PB und löscht den Merker.

    und so weiter von vorn....

    Ist doch ganz Easy.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 1 von 5 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress