.INCLUDE "m1284pdef.inc" ;Hardware #################################################################### ;gemeinsam für beide Känale: interne Pullups aktivieren oder nicht .EQU ENC_PULLUPS = 1 ;----------------------------------------------------------------------------- ;Symbole für den Hardwarekram, anpassbar, solange sichergestellt ist, dass ;unterschiedliche Interrupts für die beiden Encoderkanäle benutzt werden und ;natürlich auch unterschiedliche Pins. ;Sprich: ENC_A_IVEC und ENC_B_IVEC müssen verschieden sein und ;ENC_A_PRT+ENC_A_BIT und ENC_B_PRT+ENC_B_BIT müssen verschieden sein. ;Und natürlich muss alles zueinander "passig" deklariert sein und auch zur ;Zielhardware passen... ;----------------------------------------------------------------------------- .EQU ENC_A_PCINT = 1 ;auf null setzen für INTx .EQU ENC_A_PIN = PIND .EQU ENC_A_BIT = PIND2 .IF ENC_PULLUPS .EQU ENC_A_PRT = PORTD ;muss konfiguriert werden, wenn Pullups aktiv sein sollen .ENDIF .IF ENC_A_PCINT .EQU ENC_A_MSK = PCMSK3 ;muss konfiguriert werden für PCINT .ELSE .EQU ENC_A_SNSREG = ;diese drei Werte müssen konfiguriert .EQU ENC_A_SNSMSK = ;werden für INTx. Und zwar für Sensibilität .EQU ENC_A_SNSVAL = ;in beiden Richtungen. .ENDIF .EQU ENC_A_IMSKREG = PCICR .EQU ENC_A_IFLGREG = PCIFR .EQU ENC_A_IBIT = PCIE3 .EQU ENC_A_IVEC = PCI3addr ;............................................................................. .EQU ENC_B_PCINT = 0 ;auf !null setzen für PCINT .EQU ENC_B_PIN = PIND .EQU ENC_B_BIT = PIND3 .IF ENC_PULLUPS .EQU ENC_B_PRT = PORTD ;muss konfiguriert werden, wenn Pullups aktiv sein sollen .ENDIF .IF ENC_B_PCINT .EQU ENC_B_MSK = ;muss konfiguriert werden für PCINT .ELSE .EQU ENC_B_SNSREG = EICRA ;diese drei Werte müssen konfiguriert .EQU ENC_B_SNSMSK = (1<