?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{FILE START}

library

?curdirlinks? - Rev 6

?prevdifflink? - Blame - ?getfile?

/*! \file encoderconf.h \brief Quadrature Encoder driver configuration. */
//*****************************************************************************
//
// File Name    : 'encoderconf.h'
// Title                : Quadrature Encoder driver configuration
// Author               : Pascal Stang - Copyright (C) 2003-2004
// Created              : 2003.01.26
// Revised              : 2004.06.25
// Version              : 0.2
// Target MCU   : Atmel AVR Series
// Editor Tabs  : 4
//
// The default number of encoders supported is 2 because most AVR processors
// have two external interrupts.  To use more or fewer encoders, you must do
// four things:
//
//      1. Use a processor with at least as many external interrutps as number of
//              encoders you want to have.
//      2. Set NUM_ENCODERS to the number of encoders you will use.
//      3. Comment/Uncomment the proper ENCx_SIGNAL defines for your encoders
//              (the encoders must be used sequentially, 0 then 1 then 2 then 3)
//      4. Configure the various defines so that they match your processor and
//              specific hardware.  The notes below may help.
//
//
// -------------------- NOTES --------------------
// The external interrupt pins are mapped as follows on most AVR processors:
// (90s8515, mega161, mega163, mega323, mega16, mega32, etc)
//
// INT0 -> PD2 (PORTD, pin 2)
// INT1 -> PD3 (PORTD, pin 3)
//
// The external interrupt pins on the processors mega128 and mega64 are:
//
// INT0 -> PD0 (PORTD, pin 0)
// INT1 -> PD1 (PORTD, pin 1)
// INT2 -> PD2 (PORTD, pin 2)
// INT3 -> PD3 (PORTD, pin 3)
// INT4 -> PE4 (PORTE, pin 4)
// INT5 -> PE5 (PORTE, pin 5)
// INT6 -> PE6 (PORTE, pin 6)
// INT7 -> PE7 (PORTE, pin 7)
//
// This code is distributed under the GNU Public License
//              which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************

#ifndef ENCODERCONF_H
#define ENCODERCONF_H

// constants/macros/typdefs

// defines for processor compatibility
// quick compatiblity for mega128, mega64 
//#ifndef MCUCR
//      #define MCUCR   EICRA
//#endif

// Set the total number of encoders you wish to support
#define NUM_ENCODERS                            2


// -------------------- Encoder 0 connections --------------------
// Phase A quadrature encoder output should connect to this interrupt line:
// *** NOTE: the choice of interrupt PORT, DDR, and PIN must match the external
// interrupt you are using on your processor.  Consult the External Interrupts
// section of your processor's datasheet for more information.

// Interrupt Configuration
#define ENC0_SIGNAL                                     SIG_INTERRUPT0  // Interrupt signal name
#define ENC0_INT                                        INT0    // matching INTx bit in GIMSK/EIMSK
#define ENC0_ICR                                        MCUCR   // matching Int. Config Register (MCUCR,EICRA/B)
#define ENC0_ISCX0                                      ISC00   // matching Interrupt Sense Config bit0
#define ENC0_ISCX1                                      ISC01   // matching Interrupt Sense Config bit1
// PhaseA Port/Pin Configuration
// *** PORTx, DDRx, PINx, and Pxn should all have the same letter for "x" ***
#define ENC0_PHASEA_PORT                        PORTD   // PhaseA port register
#define ENC0_PHASEA_DDR                         DDRD    // PhaseA port direction register
#define ENC0_PHASEA_PORTIN                      PIND    // PhaseA port input register
#define ENC0_PHASEA_PIN                         PD2             // PhaseA port pin
// Phase B quadrature encoder output should connect to this direction line:
// *** PORTx, DDRx, PINx, and Pxn should all have the same letter for "x" ***
#define ENC0_PHASEB_PORT                        PORTC   // PhaseB port register
#define ENC0_PHASEB_DDR                         DDRC    // PhaseB port direction register
#define ENC0_PHASEB_PORTIN                      PINC    // PhaseB port input register
#define ENC0_PHASEB_PIN                         PC0             // PhaseB port pin


// -------------------- Encoder 1 connections --------------------
// Phase A quadrature encoder output should connect to this interrupt line:
// *** NOTE: the choice of interrupt pin and port must match the external
// interrupt you are using on your processor.  Consult the External Interrupts
// section of your processor's datasheet for more information.

// Interrupt Configuration
#define ENC1_SIGNAL                                     SIG_INTERRUPT1  // Interrupt signal name
#define ENC1_INT                                        INT1    // matching INTx bit in GIMSK/EIMSK
#define ENC1_ICR                                        MCUCR   // matching Int. Config Register (MCUCR,EICRA/B)
#define ENC1_ISCX0                                      ISC10   // matching Interrupt Sense Config bit0
#define ENC1_ISCX1                                      ISC11   // matching Interrupt Sense Config bit1
// PhaseA Port/Pin Configuration
// *** PORTx, DDRx, PINx, and Pxn should all have the same letter for "x" ***
#define ENC1_PHASEA_PORT                        PORTD   // PhaseA port register
#define ENC1_PHASEA_PORTIN                      PIND    // PhaseA port input register
#define ENC1_PHASEA_DDR                         DDRD    // PhaseA port direction register
#define ENC1_PHASEA_PIN                         PD3             // PhaseA port pin
// Phase B quadrature encoder output should connect to this direction line:
// *** PORTx, DDRx, PINx, and Pxn should all have the same letter for "x" ***
#define ENC1_PHASEB_PORT                        PORTC   // PhaseB port register
#define ENC1_PHASEB_DDR                         DDRC    // PhaseB port direction register
#define ENC1_PHASEB_PORTIN                      PINC    // PhaseB port input register
#define ENC1_PHASEB_PIN                         PC1             // PhaseB port pin


// -------------------- Encoder 2 connections --------------------
// Phase A quadrature encoder output should connect to this interrupt line:
// *** NOTE: the choice of interrupt pin and port must match the external
// interrupt you are using on your processor.  Consult the External Interrupts
// section of your processor's datasheet for more information.

// Interrupt Configuration
//#define ENC2_SIGNAL                                   SIG_INTERRUPT6  // Interrupt signal name
#define ENC2_INT                                        INT6    // matching INTx bit in GIMSK/EIMSK
#define ENC2_ICR                                        EICRB   // matching Int. Config Register (MCUCR,EICRA/B)
#define ENC2_ISCX0                                      ISC60   // matching Interrupt Sense Config bit0
#define ENC2_ISCX1                                      ISC61   // matching Interrupt Sense Config bit1
// PhaseA Port/Pin Configuration
// *** PORTx, DDRx, PINx, and Pxn should all have the same letter for "x" ***
#define ENC2_PHASEA_PORT                        PORTE   // PhaseA port register
#define ENC2_PHASEA_PORTIN                      PINE    // PhaseA port input register
#define ENC2_PHASEA_DDR                         DDRE    // PhaseA port direction register
#define ENC2_PHASEA_PIN                         PE6             // PhaseA port pin
// Phase B quadrature encoder output should connect to this direction line:
// *** PORTx, DDRx, PINx, and Pxn should all have the same letter for "x" ***
#define ENC2_PHASEB_PORT                        PORTC   // PhaseB port register
#define ENC2_PHASEB_DDR                         DDRC    // PhaseB port direction register
#define ENC2_PHASEB_PORTIN                      PINC    // PhaseB port input register
#define ENC2_PHASEB_PIN                         PC2             // PhaseB port pin


// -------------------- Encoder 3 connections --------------------
// Phase A quadrature encoder output should connect to this interrupt line:
// *** NOTE: the choice of interrupt pin and port must match the external
// interrupt you are using on your processor.  Consult the External Interrupts
// section of your processor's datasheet for more information.

// Interrupt Configuration
//#define ENC3_SIGNAL                                   SIG_INTERRUPT7  // Interrupt signal name
#define ENC3_INT                                        INT7    // matching INTx bit in GIMSK/EIMSK
#define ENC3_ICR                                        EICRB   // matching Int. Config Register (MCUCR,EICRA/B)
#define ENC3_ISCX0                                      ISC70   // matching Interrupt Sense Config bit0
#define ENC3_ISCX1                                      ISC71   // matching Interrupt Sense Config bit1
// PhaseA Port/Pin Configuration
// *** PORTx, DDRx, PINx, and Pxn should all have the same letter for "x" ***
#define ENC3_PHASEA_PORT                        PORTE   // PhaseA port register
#define ENC3_PHASEA_PORTIN                      PINE    // PhaseA port input register
#define ENC3_PHASEA_DDR                         DDRE    // PhaseA port direction register
#define ENC3_PHASEA_PIN                         PE7             // PhaseA port pin
// Phase B quadrature encoder output should connect to this direction line:
// *** PORTx, DDRx, PINx, and Pxn should all have the same letter for "x" ***
#define ENC3_PHASEB_PORT                        PORTC   // PhaseB port register
#define ENC3_PHASEB_DDR                         DDRC    // PhaseB port direction register
#define ENC3_PHASEB_PORTIN                      PINC    // PhaseB port input register
#define ENC3_PHASEB_PIN                         PC3             // PhaseB port pin

#endif
{FILE END}
{FOOTER START}

Powered by WebSVN v2.8.3