Hallo zusammen,
ich habe mal eine Frage zum Alias in Bascom.
Alias ist doch ein ErsatzBezeichnung?
In der Bascom-Hilfe steht etwa, dass man damit Pins/Ports einen Namen verpassen kann. Ist auch logisch und funktioniert.
Beispiel: LED Alias PortB.1
Damit kann ich LED (also den Alias) anstelle der Port-Bezeichnung verwenden. Alles gut.
Nun hatte ich das Problem bei einer Lib schreiben, die einen externen Interrupt verwenden soll, dass ich nicht vorhersehen kann, welchen externen Interrupt (INT0/INT1) der Benutzer letztendlich verwendet.
Kurzum wollte ich für den externen Interrupt einen Alias verwenden. Gleiches gilt auch für einen 8-Bit Timer, den ich in der Lib verwende.
Auch hier weiß ich nicht, ob der Timer vom Anwender nicht bereits verwendet wird und man auf den Anderen Timer ausweichen muss.
Also dachte ich, ich verwende einfach einen Alias für den externen Interrupt (MyInterrupt) und auch einen Alias für den Timer (MyTimer).
Der Alias funktioniert leider nur beim Timer, nicht aber beim Interrupt.
Ich habe hier ein kleines Demo geschrieben für BascomAVR (2.0.7., welches genau den Sachverhalt demonstriert.
Könnt ihr mir sagen, warum das nicht geht?Code:' Demo, ' Alias für Timer und externe Interrupts verwenden $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 32 $framesize = 32 MyInterrupt Alias INT0 ' Alias für ext. Interrupt setzen (INT0|INT1) MyTimer Alias Timer0 ' Alias für 8-Bit Timer (TIMER0|TIMER2) ' Alias mit Timer geht offensichtlich Config MyTimer = Timer , Prescale = 8 ' geht! ' Alias mit Interrupt geht nur teilweise Config MyInterrupt = Rising ' geht! On MyInterrupt ISR_INTn ' geht wohl nicht Enable MyInterrupt ' geht wohl auch nicht Enable Interrupts ' Global Interrupts zulassen Do ' nichts zu tun Loop ISR_INTn: ' Interrupt-Routine Return
Oder muss ich das anders machen?
Der Compiler meckert jedenfalls.
Danke für eure Tips.
Micha
Lesezeichen