-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Paralleler ablauf von Funktionen im ATMega 16 / 32?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.01.2004
    Beiträge
    317

    Paralleler ablauf von Funktionen im ATMega 16 / 32?

    Anzeige

    Hallo,

    ich fange gerade an mich mit dem ATMega zu beschäftigen und diesen mit C zu programmieren.
    Dabei kam jetzt die Frage auf ob es möglich ist Funktionen im µC gleichzeitig ablaufen zu lassen.
    Beispiel:
    es soll ein Programm ablaufen welches Daten aufzeichnet und bei einem bestimmten ereignis soll eine LED anfangen zu blinken. Nun soll aber die LED in einem Takt blinken (Funktion blinken) und das eigentliche Programm soll trotzdem weiter ablaufen.

    Zu Übungszwecken habe ich im Moment einen Takt wie folgt erzeugt:
    Code:
    int main()
    {
       
    while(1)
     {  
      PORTD= (1<<PD2);
      delay_ms(50);
      PORTD= (0<<PD2);
      delay_ms(300);
     }
     
    }
    aber wenn ich das richtig gelesen habe bleibt ja der µC stehen beim Aufruf von delay_ms und somit kann ja nichts weiter ausgeführt werden.

    Kann mir da jemand sagen ob es möglich ist funktionen parallel ausfüheren zu lassen?

    Danke schon einmal

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Die Zauberworte heißen Interrupts und Timer...

    ->Timer erzeugt Blinkfrequenz, in seinem Compare-Interrupt prüft er ein globales Flag, das vom Hauptprogramm gesetzt wird, um das Blinken zu aktivieren. Wenn Flag gesetzt-> LED-Pin toggeln...

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.01.2004
    Beiträge
    317
    Danke,
    dann werde ich mal danach suchen und mal schauen ob ich darüber etwas finde was anfängertauglich ist
    mfG Henry

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Parallel geht nicht, nur nebenläufig. Ansonsten hat uweg Dir ja schon die entsprechenden Stichworte genannt.

    Entsprechende Informationen findest Du auch in der wikipedia
    http://de.wikipedia.org/wiki/Nebenl%...Programmierung

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    28.01.2005
    Beiträge
    10
    Wenn du zwei prozesse "gleichzeitig" ablaufen lassen willst (vorrausgesetzt etwas schwieriger wie LED´s Blinken) kann dir ein Multitaskingsystem helfen das läuft auch auf einem 16er wenn man mit dem speicher etwas sorgfältig umgeht

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    04.12.2006
    Ort
    ERK
    Alter
    33
    Beiträge
    69
    Hallo Zusammen,

    ich habe ein ähnliches Problem.

    Gerne würde ich eine Drehzahlmessung realisieren, die permanent Werte liefern soll. Desweiteren sollen im "Hintergrund" Temperaturmesswerte erfasst werden. Die Werten soll dann im Controller abgespeichert werden und zusätzlich per RS232 übertragen werden.

    Zur Zeit plane ich eine Lösung mit 2 Controllern.

    Hat jemand eine Bessere Idee?

    DANKE!

    GRuss Alex
    Das leben ist zu kurz, um es nicht mit einem Chevy Pickup zu genießen!
    http://us-dreamcar.denver015.server4you.de/banner.jpg

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.09.2006
    Alter
    28
    Beiträge
    841
    Blog-Einträge
    1
    wie oft pro sekunde sollen die werte denn ausgemessen werden?

    es reicht auch sie hintereinander auszulesen....

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    04.12.2006
    Ort
    ERK
    Alter
    33
    Beiträge
    69
    Die Anzeige (LCD) sowie die Übertragung per RS232 reicht im Sekunden Takt.

    Die Frage ist nur, wie realisere ich dann die Drehzahlerfassung? Die soll ja permanet erfolgen.

    Und die Daten sollen dann auch noch im Sekundentakt abgespeichert werden. Die Frage ist halt nur, wie lange der Speicher dann reicht!

    Gruss Alex
    Das leben ist zu kurz, um es nicht mit einem Chevy Pickup zu genießen!
    http://us-dreamcar.denver015.server4you.de/banner.jpg

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.09.2006
    Alter
    28
    Beiträge
    841
    Blog-Einträge
    1
    schaue dir bitte nochmal die geschwindigkeit eines avrs an im besten fall 16 MHz

    wenn die daten im sekundentakt abgespeichert werden reicht doch eine messung pro sekunde? selbst dann würde sich der AVR noch langweilen


    soweit ich weiß kann man den speicher auch erweitern...

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    04.12.2006
    Ort
    ERK
    Alter
    33
    Beiträge
    69
    ja, ich muss mir das datenblatt nochmal genau anschauen.

    wie kann ich den speicher den erweitern?

    gruss alex
    Das leben ist zu kurz, um es nicht mit einem Chevy Pickup zu genießen!
    http://us-dreamcar.denver015.server4you.de/banner.jpg

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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