stk_526.h

Go to the documentation of this file.
00001 // ============================================
00002 // = AT90USB162 REFERENCE DESIGN
00003 // = Wired mouse with philips PNL2021 sensor
00004 // ********************************************
00005 // = Driver file for basic peripherals
00006 // =============================================
00007 
00008 
00009 // USB
00010 // Used if VBUS_SENSING_IO is defined as "ENABLED"
00011 #define   VBUS_SENSE_PORT     PORTC   // PORTx
00012 #define   VBUS_SENSE_PIN      PINC    // PINx
00013 #define   VBUS_SENSE_DDR      DDRC    // DDRx
00014 #define   VBUS_SENSE_IO       4       // 0...7
00015 
00016 
00017 // LEDs
00018 // ****
00019 #define   Leds_init()          (DDRD |= 0x33, PORTD &= ~0x33)
00020 
00021 #define   Led0_on()            (PORTD |= 0x01)                  // PD0
00022 #define   Led0_off()           (PORTD &= ~0x01)
00023 #define   Led0_toggle()        (PORTD ^= 0x01)
00024 #define   Led1_on()            (PORTD |= 0x02)                  // PD1
00025 #define   Led1_off()           (PORTD &= ~0x02)
00026 #define   Led1_toggle()        (PORTD ^= 0x02)
00027 #define   Led2_on()            (PORTD |= 0x10)                  // PD4
00028 #define   Led2_off()           (PORTD &= ~0x10)
00029 #define   Led2_toggle()        (PORTD ^= 0x10)
00030 #define   Led3_on()            (PORTD |= 0x20)                  // PD5
00031 #define   Led3_off()           (PORTD &= ~0x20)
00032 #define   Led3_toggle()        (PORTD ^= 0x20)
00033 
00034 #define   Leds_set_val(c)      (Leds_off(),PORTD |= (c&0x03)+((c&0x0C)<<2))
00035 #define   Leds_get_val()       ((PORTD&0x30)>>2+(PORTD&0x03))
00036 #define   Leds_off()           (PORTD &= ~0x33)
00037 
00038 // PUSHBUTTONS
00039 // ***********
00040 
00041 #define   Joy_init()                (DDRB &= ~0xF1, PORTB |= 0xF1)
00042 #define   Push_button_init()        Joy_init()
00043 
00044 #define   Is_joy_left()             (((PINB&0x10) == 0) ? TRUE : FALSE)    // PB4
00045 #define   Is_joy_not_left()         (((PINB&0x10) == 0) ? FALSE : TRUE)
00046 #define   Is_button_left()          Is_joy_left()
00047 #define   Is_button_not_left()      Is_joy_not_left()
00048 
00049 #define   Is_joy_middle()           (((PINB&0x01) == 0) ? TRUE : FALSE)    // PB0
00050 #define   Is_joy_not_middle()       (((PINB&0x01) == 0) ? FALSE : TRUE)
00051 #define   Is_joy_select()           Is_joy_middle()
00052 #define   Is_joy_not_select()       Is_joy_not_middle()
00053 #define   Is_button_middle()        Is_joy_middle()
00054 #define   Is_button_not_middle()    Is_joy_not_middle()
00055 
00056 #define   Is_joy_right()            (((PINB&0x40) == 0) ? TRUE : FALSE)    // PB6
00057 #define   Is_joy_not_right()        (((PINB&0x40) == 0) ? FALSE : TRUE)
00058 #define   Is_button_right()         Is_joy_right()
00059 #define   Is_button_not_right()     Is_joy_not_right()
00060 
00061 #define   Is_joy_down()             (((PINB&0x80) == 0) ? TRUE : FALSE)    // PB7
00062 #define   Is_joy_not_down()         (((PINB&0x80) == 0) ? FALSE : TRUE)
00063 #define   Is_button_down()          Is_joy_down()
00064 #define   Is_button_not_down()      Is_joy_not_down()
00065 
00066 #define   Is_joy_up()               (((PINB&0x20) == 0) ? TRUE : FALSE)    // PB5
00067 #define   Is_joy_not_up()           (((PINB&0x20) == 0) ? FALSE : TRUE)
00068 #define   Is_button_up()            Is_joy_up()
00069 #define   Is_button_not_up()        Is_joy_not_up()
00070 
00071 
00072 #define   Hwb_button_init()         (DDRD &= ~0x80)
00073 #define   Is_hwb()                  (((PIND&0x80) == 0) ? TRUE : FALSE)   // PD7
00074 
00078 
00079 #define DF_8_MB   // Type of DF implemented.
00080 
00081 
00082 #define DF_SELECT_MEM        0
00083 #define DF_UNSELECT_MEM      1
00084 #define DF_NB_MEM            1
00085 
00086 #ifndef AVRGCC
00087    // PORTB_Bit0=1,DDRB_Bit0=0: SPI Slave Select Input. The data direction of the
00088    //    NOT(SS) is INPUT and the pull-up resistor is activated.
00089    // DDRB_Bit1=1: the SCK signal direction is OUTPUT.
00090    // DDRB_Bit2=1: the SI signal direction is OUTPUT.
00091    // DDRB_Bit3=0: the SO signal direction is INPUT.
00092    // PORTB_Bit4=1,DDRB_Bit4=1: CS driven high
00093    //    and both CS are OUTPUT.
00094 
00095    #define Init_df_stk526()   (DDRC_Bit2=1,PORTC_Bit2=1,DDRB_Bit0=1)
00096    #define DF_CS_PIN          PORTC_Bit2
00097    #define DF_CS0             DF_CS_PIN
00098    #define DF_CS1             DF_CS0
00099    #define DF_CS2             DF_CS0
00100    #define DF_CS3             DF_CS0
00101    #define Df_select_df(i, val) (DF_CS##i = val)
00102    #define Df_desel_all()       (DF_CS0=DF_UNSELECT_MEM)     // set CS# dataflash memories
00103 #else 
00104    #define Init_df_stk526()   (DDRC |=(1<<DF_CS0), PORTC|=(1<<DF_CS0), PORTB |= (1<<0))
00105    #define DF_CS_PORT         PORTC
00106    #define DF_CS0             2
00107    #define DF_CS1             DF_CS0
00108    #define DF_CS2             DF_CS0
00109    #define DF_CS3             DF_CS0
00110    #define Df_desel_all()     (DF_CS_PORT|=(1<<DF_CS0)) // set CS# dataflash memories (unselect).
00111 #endif
00112 #define df_init_spi()      Init_df_stk526()
00114 
00115 

Generated on Fri Jun 15 14:15:32 2007 for Atmel by  doxygen 1.5.1-p1