-         
+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Wie viele Interrupts sind gesund?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.05.2004
    Ort
    N Stück rechts von Hamburg
    Alter
    27
    Beiträge
    166

    Wie viele Interrupts sind gesund?

    Hi Leute,
    Ich fange gerade erst mit mikrocontrollern an, hab mir noch keinen gekauft, und schon kommt die erste frage:
    son AVR hat ja nur 2-3 externe Interrupts. Wenn ich das Tutorial auf www.mikrocontroller.net richtig verstanden habe, brauche ich interrupts, um auf ereignisse von außen (sensoren) zu reagieren. heisst das dass ich nen roboter nur mit zwei simplen tastern ausstatten kann? Was, wenn ich jetzt im Lotto gewinne und meinen Bot mit Sensoren vollstopfen will, z.B. ne Kamera, nen Radarsensor, Taktscheiben an den Rädern, n Kompassmodul, ...? Nicht, dass ich das alles vorhätte, aber nur zwei simple Sensoren sind wirklich etwas mickrig...

    PS: Mit welchem µC fang ich am besten an? mega8? mega16? oder n ganz anderer?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Wenn ich das Tutorial auf www.mikrocontroller.net richtig verstanden habe, brauche ich interrupts, um auf ereignisse von außen (sensoren) zu reagieren.
    Das ist sicher anders gemeint. Du brauchst nicht unbedingt Interrupts um auf Ereignisse von Sensoren zu reagieren, du kannst Interrupts dafür nutzen.

    "Interrrupt" kommt von unterbrechen. Das heisst wenn ein Interrupt ausgelöst wird, wird der normale Programmablauf unterbrochen und die Routine die für diesen Interrupt definiert wurde ausgeführt.
    Wenn der normale Programmablauf aber sowieso schon regelmässig alle paar ms die Sensoren abfragt, brauchst du für diese Sensoren keinen Interrupt.
    Du kannst im Prinzip an jeden I/O Pin Sensoren anschliessen und nicht nur soviele wie der µC Interrupts hat.

    Mit welchem µC fang ich am besten an? mega8? mega16? oder n ganz anderer?
    Preislich unterscheiden die sich um knappe 1 - 2 Euro, von der Funktion sind sie fast gleich der ATMega16 hat nur ein paar Ein/Ausgänge mehr.
    Für einen einfachen Roboter mit dem man normalerweise anfängt reichen beide völlig aus. Wenn dich nicht stört, dass er etwas mehr Platz auf der Platine braucht würde ich den ATMega 16 nehmen. Man muss ja nicht alle Pins benutzen.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.05.2004
    Ort
    N Stück rechts von Hamburg
    Alter
    27
    Beiträge
    166
    Gut, das heisst ich muss mir einige wichtige Sensoren aussuchen, auf deren ereignisse ich gleich per interrupt reagieren will, und den rest muss ich in ner art schleife abfragen.

    von der Funktion sind sie fast gleich
    aber der mega16 ist im gegensatz zum mega8 n 16bit controller oder?

    Na dann vielen dank für deine hilfe, die technik find ich ziemlich faszinierend, mir muss nur noch ne sinnvolle idee kommen was mein bot machen soll...

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2004
    Alter
    32
    Beiträge
    255
    nein! der mega16 ist viel alle avrs ein 8 bit controller.
    er hat nur mehr speicher, mehr pins und ein paar mehr features.

    Grüße
    flite

  5. #5
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    63
    Beiträge
    12.203
    Üblicherweise faßt man mehrere oder alle Interrupts (Unterbrechungsanforderungen) zusammen beispielsweise über "wired or" oder allgemein über Gatter und teilt sie dem Controller auf einer gemeinsamen Leitung (port) mit.
    Der unterbricht und, wenn erschon dabei ist, dann schaut er nach, wo der Interrupt herkam. Mehrere Interrupt Eingänge braucht man bei dieser Organisation dann nur noch für unterschiedliche Priortät.
    Sensoren kann man natürlich auch ohne Interrupt abfragen, wenn man deren Meßwerte benötigt oder periodisch zur Überprüfung.
    Interruptbehandlung ist eben effizienter, wenn zunächst kein Alarm erwartet wird trotzdem bei Bedarf schnell reagiert werden soll.
    Manfred

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.05.2004
    Ort
    N Stück rechts von Hamburg
    Alter
    27
    Beiträge
    166
    Interruptbehandlung ist eben effizienter, wenn zunächst kein Alarm erwartet wird trotzdem bei Bedarf schnell reagiert werden soll.
    seh ich genauso. mehrere veränderungen auf einen interrupt zu legen ist ne gute idee, ich muss bloß irgendwo den vorherigen status speichern um rauszufinden wo die änderung passiert ist. muss ich halt n paar register oder etwas ram opfern...

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    03.01.2004
    Ort
    Pottenstein
    Alter
    37
    Beiträge
    265
    Das mit dem wired or für mehrere Interrupts auf einem Pin ist ne sehr gute Idee, darauf war ich noch gar nicht gekommen. Hilft mir sehr, weil ich mit einem Mikroprozessor 4 PWM-Signale einlesen will und die AVRs wie gesagt meist nur 2 oder 3 haben. Danke!

+ Antworten

Berechtigungen

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