-         

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

Thema: Hardware Interrupts - Bascom ich bitte um Hilfe!

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2005
    Ort
    Stuttgart
    Beiträge
    24

    Hardware Interrupts - Bascom ich bitte um Hilfe!

    Anzeige

    Hallo,

    Ich möchte 2 ir Sensoren in Bascom auswerten. Es gibt bei meinen Atmega16 ja 2 Interrupteingänge

    Wie kann ich sobalt eine logische spannung von 5 oder 0volt anliegen das das Programm unterbrochen wird, und es an eine spezielle stelle im Program springt.

    Hat jemand mir vieleicht ein paar Codeschipsel oder ähnliches?


    Ich würde mich über jegliche Beiträge freuen!



    Viele Grüße an alle Roboterbauer

    flori

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    was willstn nun, bei 5V oder bei 0V oder abwechselnd?
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2005
    Ort
    Stuttgart
    Beiträge
    24
    sobalt einer der beiden auf 0volt also logisch bit 0 wird soll er etwas ausführen

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    Code:
    $regfile="m16def.dat"
    $crystal=7372800 'musste für dich noch ändern
    
    config int0 = falling
    config int1 = falling
    
    enable int0
    enable int1
    
    enable interrupts
    
    on int0 int0_isr
    on int1 int1_isr
    
    do
       '...
    loop
    
    int0_isr: 'isr=InterruptServiceRoutine
    'tue dies bei INT0 auslösung
    return
    
    int1_isr: 'isr=InterruptServiceRoutine
    'tue dies bei INT1 auslösung
    return
    das sollte es gewesen sein ^^
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2005
    Ort
    Stuttgart
    Beiträge
    24
    danke du hast mir sehr geholfen!...ich werde dies im laufe des tages ausprobieren!

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Bevor du dich wunderst....
    Wenn du ein LCD angeschlossen hast, kann es unter Umständen zu Störungen in der Anzeige kommen, wenn du gerade auf's LCD schreibst und zum gleichen Zeitpunkt ein Interrupt auftritt.
    Ich disable die Interrupts vor'm schreiben auf's LCD und schalte sie sofort danach wieder ein.
    Falls einer eine bessere Lösung für das LCD Problem hat, bitte her damit !

    Gruß
    Christopher

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    wie viele ints benutzt du denn im programm?
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Ich disable die Interrupts vor'm schreiben auf's LCD und schalte sie sofort danach wieder ein.
    Falls einer eine bessere Lösung für das LCD Problem hat, bitte her damit !
    Also soweit ich weiß, wird das öfter/immer so gemacht. Wenn man irgendwelche operationen macht, wo nichts dazwischen Funken darf: INTERRUPT aus und wieder an. Da führt wohl kein Weg dran vorbei, es sei denn du erzeugst künstlich nen Interrupt und schreibst in diesen die LCD Routinen. Es stimmt doch, dass Interrupts, die während einer ISR auftreten, nach der gerade aktuellen ISR ausgeführt werden, oder?

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Es stimmt doch, dass Interrupts, die während einer ISR auftreten, nach der gerade aktuellen ISR ausgeführt werden, oder?
    Keine Ahnung hängt das nicht mit der Priorität der Interrupts zusammen ?
    Würde mich auch interessieren, ob ein Interrupt mit höherer Priorität einer ISR "dazwischenfunken" kann.
    Oder muß ich dann in der ISR selber die Interrupts disablen und am Ende der ISR wieder einschalten um sowas zu verhindern ??

    Gruß
    Christopher

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2005
    Ort
    Stuttgart
    Beiträge
    24
    besitzt der Atmega16 2 oder 3 externe Interrupts? aus den Pinbelegungen des Datenblattes kann ich 3 entnehmen Int0 int1 und Int2/AIN0 was bedeutet AIN0? muss ich irgendwelche fusebits aktivieren um diesen nutzen zu können, oder hat der mega16 nur 2 externe Interrupts?


    viele grüße

    florian

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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