Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie kann ich einen Interrupt benutzen?
MartinITM
24.08.2004, 23:28
Hallo,
ich würde gern Interrupts bei einem ATmega16 in Bascom benutzen.
Leider bin ich bis jetzt auf kein einfaches Programm gestoßen, wo ich sehen konnte, wie dies funktioniert.
Vielleicht hat hier einer Links für mich, wo ich sowas nachlesen bzw. sehen kann.
Danke
mfg Martin
Hi
Ich kann dir nen Beispiel geben, wenns dir hilft:
$regfile = "m8def.dat"
$crystal = 14745600
config int0 = rising
on int0 int0_isr
enable interrupts
do
loop
end
int0_isr:
return
das programm tut nichts, außer auf den int0 horchen.
wenn der nun von logisch 0 auf logisch 1 wechselt, dann wird die routine int0_isr ausgeführt.
Falls du Fragen hast, kannst du gerne Fragen!
Martin
MartinITM
24.08.2004, 23:59
wie, das ist alles?
"bin ich schon drin? das ist ja einfach"
super danke für die schnelle antwort
was bewirkt config int0 = rising
könnte ich das auch
config meinint = rising benennen oder muss das int0 heißen
und rising ist eine konstante?
Ich sag ja immer das man in Basic am wenigsten Quellcode für die Aufgaben benötigt.
Es muss INT0 oder INT1 heißen (je nachdem wieviel Interrupts der AVR hat) . Und RISING bedeutet das der Interrupt bei fallendem Pegel (von 5V nach 0V) ausgelöst wird.
MartinITM
25.08.2004, 11:30
ahjo
gibts dann auch einen Interrupt von 0V auf 5V ?
währe dann ja config int0 = falling.
Versuch dich mal in der Bascomhilfe zurechtzufinden (ist manchmal etwas umständlich). Da sind die Befehle mit kleinen Programmschnipseln erklärt. Und wenns nüscht hilft - einfach mal am µC direkt ausprobieren oder den Simulator benutzen.
Sorry, RISING ist steigend (von 0 nach 5V) und Falling ist von 5V nach 0V.
So stimmts!
Hi Frank,
bedeutet "RISING" nicht steigender Pegel (0V nach 5Volt) und "FALLING"
fallender Pegel (5Volt nach 0Volt)?
Berichtige mich, wenn ich mich täusche.
cu Matula
Sorry, mein Posting zurück !! Ist ja schon beantwortet worden.....
cu Matula
Ist es möglich nur einen bestimmten port zu fragen?
Also z.B. sind drei US - sensoren angeschlossen an Pin PortB.0 bis B.2.
Nur da soll gefragt werden.
MFG Moritz
Ich werd zwar aus Deinem Post nicht so schlau, vermute aber mal, das Du wenn ein externer Interrupt verursacht wir, nur die Pegel an diesen Ports einlesen willst. !??!?
Das brauchst Du doch nur in die Routine reinzuschreiben.
Wenn ich falsch liege, dann schau mal nach "Enable, Disable, Start und Stop" und der Bascom Hilfe.
Die Befehle brauchste für die IRQ's.
Tut mir leid, wenn ich das etwas unverständlich geschrieben habe.
Also nochmal:
Ich wollte nur wissen, ob man einen bestimmmten Port, z.B. portD.5, auf Flankenwechsel hin überwachen kann, oder ob bestimmte Ports je nach Controller vorgegeben sind, oder, Fall NR 3, ob alle Interrupts, also alle Ports, die Routine auslösen.
Ich wollte eine Geschwindigkeitsmessung für einen Motor bauen, habe das Problem aber mit Pulsein gelöst. Auch wenn das immer auch sehr fragwürdige Werte liefert.
MFG Moritz
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.