usb_key.h

Go to the documentation of this file.
00001 /*This file has been prepared for Doxygen automatic documentation generation.*/
00013 
00014 /* Copyright (c) 2007, Atmel Corporation All rights reserved.
00015  *
00016  * Redistribution and use in source and binary forms, with or without
00017  * modification, are permitted provided that the following conditions are met:
00018  *
00019  * 1. Redistributions of source code must retain the above copyright notice,
00020  * this list of conditions and the following disclaimer.
00021  *
00022  * 2. Redistributions in binary form must reproduce the above copyright notice,
00023  * this list of conditions and the following disclaimer in the documentation
00024  * and/or other materials provided with the distribution.
00025  *
00026  * 3. The name of ATMEL may not be used to endorse or promote products derived
00027  * from this software without specific prior written permission.
00028  *
00029  * THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS OR IMPLIED
00030  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00031  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
00032  * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
00033  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00034  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00035  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00036  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00037  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00038  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  */
00040 
00041 #ifndef USB_KEY_H
00042 #define USB_KEY_H
00043 
00044 //_____ I N C L U D E S ____________________________________________________
00045 
00046 #include "config.h"
00047 #if (TARGET_BOARD==USBKEY)
00048 
00049 //_____ M A C R O S ________________________________________________________
00050 
00051 
00056 
00064 #define  LED_PORT             PORTD
00065 #define  LED_DDR              DDRD
00066 #define  LED_PIN              PIND
00067 #define  LED0_BIT             PIND4
00068 #define  LED1_BIT             PIND5
00069 #define  LED2_BIT             PIND6
00070 #define  LED3_BIT             PIND7
00071                       
00072 #define  Leds_init()          (LED_DDR |= (1<<LED0_BIT) | (1<<LED1_BIT) | (1<<LED2_BIT) | (1<<LED3_BIT))
00073 #define  Leds_on()            (LED_PORT |= (1<<LED0_BIT) | (1<<LED1_BIT) | (1<<LED2_BIT) | (1<<LED3_BIT))
00074 #define  Leds_off()           (LED_PORT &= ~((1<<LED0_BIT) | (1<<LED1_BIT) | (1<<LED2_BIT) | (1<<LED3_BIT)))
00075 #define  Leds_set_val(c)      (Leds_off(),LED_PORT |= (c<<4)&((1<<LED0_BIT) | (1<<LED1_BIT) | (1<<LED2_BIT) | (1<<LED3_BIT)))
00076 #define  Leds_get_val()       (LED_PORT>>4)
00077 
00078 #define  Led0_on()            (LED_PORT |=  (1<<LED0_BIT))
00079 #define  Led1_on()            (LED_PORT |=  (1<<LED1_BIT))
00080 #define  Led2_on()            (LED_PORT |=  (1<<LED2_BIT))
00081 #define  Led3_on()            (LED_PORT |=  (1<<LED3_BIT))
00082 #define  Led0_off()           (LED_PORT &= ~(1<<LED0_BIT))
00083 #define  Led1_off()           (LED_PORT &= ~(1<<LED1_BIT))
00084 #define  Led2_off()           (LED_PORT &= ~(1<<LED2_BIT))
00085 #define  Led3_off()           (LED_PORT &= ~(1<<LED3_BIT))
00086 #define  Led0_toggle()        (LED_PIN  |=  (1<<LED0_BIT))
00087 #define  Led1_toggle()        (LED_PIN  |=  (1<<LED1_BIT))
00088 #define  Led2_toggle()        (LED_PIN  |=  (1<<LED2_BIT))
00089 #define  Led3_toggle()        (LED_PIN  |=  (1<<LED3_BIT))
00090 #define  Is_led0_on()         (LED_PIN  &   (1<<LED0_BIT) ? TRUE : FALSE)
00091 #define  Is_led1_on()         (LED_PIN  &   (1<<LED1_BIT) ? TRUE : FALSE)
00092 #define  Is_led2_on()         (LED_PIN  &   (1<<LED2_BIT) ? TRUE : FALSE)
00093 #define  Is_led3_on()         (LED_PIN  &   (1<<LED3_BIT) ? TRUE : FALSE)
00095 
00099 #define  Joy_init()           (DDRB &= ~((1<<PINB7)|(1<<PINB6)|(1<<PINB5)), PORTB |= ((1<<PINB7)|(1<<PINB6)|(1<<PINB5)), DDRE &= ~((1<<PINE5)|(1<<PINE4)), PORTE |= ((1<<PINE5)|(1<<PINE4)))
00100 
00101 #define  Is_btn_left()        Is_hwb()
00102 #define  Is_btn_middle()      ((PINB & (1<<PINB5)) ?  FALSE : TRUE)
00103 #define  Is_btn_right()       FALSE
00104 
00105 #define  Is_joy_up()          ((PINB & (1<<PINB7)) ?  FALSE : TRUE)
00106 #define  Is_joy_left()        ((PINB & (1<<PINB6)) ?  FALSE : TRUE)
00107 #define  Is_joy_down()        ((PINE & (1<<PINE5)) ?  FALSE : TRUE)
00108 #define  Is_joy_right()       ((PINE & (1<<PINE4)) ?  FALSE : TRUE)
00109 
00110 #define  Is_btn_not_left()    Is_not_hwb()
00111 #define  Is_btn_not_middle()  ((PINB & (1<<PINB5)) ?  TRUE : FALSE)
00112 #define  Is_btn_not_right()   TRUE
00113 
00114 #define  Is_joy_not_up()      ((PINB & (1<<PINB7)) ?  TRUE  : FALSE)
00115 #define  Is_joy_not_left()    ((PINB & (1<<PINB6)) ?  TRUE : FALSE)
00116 #define  Is_joy_not_down()    ((PINE & (1<<PINE5)) ?  TRUE : FALSE)
00117 #define  Is_joy_not_right()   ((PINE & (1<<PINE4)) ?  TRUE : FALSE)
00118 
00123 #define  Switches_enable_it() {  \
00124       PCMSK0 |= (1<<PCINT5)|(1<<PCINT6)|(1<<PCINT7);\
00125       PCIFR |= (1<<PCIF0);       \
00126       PCICR |= (1<<PCIE0);}
00127  
00132 #define  Switches_disable_it() { \
00133       PCICR  &= ~(1<<PCIE0);     \
00134       PCIFR  |= (1<<PCIF0);      \
00135       PCMSK0 &= ~((1<<PCINT5)|(1<<PCINT6)|(1<<PCINT7));}
00137 
00138 
00143 #define Hwb_button_init()      (DDRE  &= ~(1<<PINE2), PORTE |= (1<<PINE2))
00144 #define Is_hwb()               ((PINE &   (1<<PINE2)) ?  FALSE : TRUE)
00145 #define Is_not_hwb()           ((PINE &   (1<<PINE2)) ?  TRUE : FALSE)
00147 
00148 
00152 
00153 // One AT45DB642D
00154 #define DF_8_MB            
00155 #define DF_NB_MEM          2
00156 
00157 // PINB0 : SPI Slave Select pin, this pin must be disable (disable input mode) because it is used by joystick
00158 //         Note: the joystick can work fine in Output mode, because the pull-up resistor is activated and the level pin can be read.
00159 // PINB1 : the SCK signal direction is OUTPUT
00160 // PINB2 : the SI signal direction is OUTPUT
00161 // PINB3 : the SO signal direction is INPUT
00162 // PINE0 : the CS0 signal direction is OUTPUT
00163 // PINE1 : the CS1 signal direction is OUTPUT
00164 #define  Df_init_spi()     (DDRB  &= ~((1<<PINB3)), \
00165                             DDRB  |=  ((1<<PINB2)|(1<<PINB1)|(1<<PINB0)), \
00166                             PORTB |=  ((1<<PINB3)|(1<<PINB2)|(1<<PINB1)|(1<<PINB0)),\
00167                             DDRE  |=  ((1<<PINE1)|(1<<PINE0)), \
00168                             PORTE |=  ((1<<PINE1)|(1<<PINE0)) )
00169 #define  Df_select_0()     (PORTE &= ~(1<<PINE0))
00170 #define  Df_select_1()     (PORTE &= ~(1<<PINE1))
00171 #define  Df_desel_all()    (PORTE |=  ((1<<PINE1)|(1<<PINE0)))
00172 
00174 
00176 
00177 
00178 // USB KEY ADC Channel Definition
00179 #define ADC_TEMP_CH  0x00
00180 
00181 #ifdef USE_ADC       
00182 
00183 
00184 
00194    U16 Get_adc_temp_val(void);
00195 
00196 
00206    S16  Read_temperature(void);
00207 
00208 #endif   // USE_ADC
00209 
00210 #endif   // TARGET_BOARD==USBKEY
00211 
00212 #endif   // USB_KEY_H
00213 

Generated on Mon Nov 3 10:08:24 2008 for ATMEL by  doxygen 1.5.3