was willstn nun, bei 5V oder bei 0V oder abwechselnd?
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
was willstn nun, bei 5V oder bei 0V oder abwechselnd?
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
sobalt einer der beiden auf 0volt also logisch bit 0 wird soll er etwas ausführen
das sollte es gewesen sein ^^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
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
danke du hast mir sehr geholfen!...ich werde dies im laufe des tages ausprobieren!
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
wie viele ints benutzt du denn im programm?
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
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?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 !
MFG Moritz
www.free-webspace.biz/update
Keine Ahnung hängt das nicht mit der Priorität der Interrupts zusammen ?Es stimmt doch, dass Interrupts, die während einer ISR auftreten, nach der gerade aktuellen ISR ausgeführt werden, oder?
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
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
Lesezeichen