macro.h

Go to the documentation of this file.
00001 // This file is prepared for Doxygen automatic documentation generation.
00021 #ifndef _MACRO_H_
00022 #define _MACRO_H_
00023 
00031 #define SETBIT( sregister, bitname ) \
00032                         __asm__( "st.w sp++, r7\n" \
00033                         "mfsr r7, %0\n" \
00034                         "sbr r7, %1\n" \
00035                         "mtsr %0, r7\n" \
00036                         "ld.w r7, --sp\n" \
00037                         : \
00038                         :"X"(sregister), "g"(bitname) )
00039 
00040 
00041 
00049 #define CLEARBIT( sregister, bitname ) \
00050                         __asm__( "st.w sp++, r7\n" \
00051                         "mfsr r7, %0\n" \
00052                         "cbr r7, %1\n" \
00053                         "mtsr %0, r7\n" \
00054                         "ld.w r7, --sp\n" \
00055                         : \
00056                         :"X"(sregister), "g"(bitname) )
00057 
00058 #define CLRBIT(sregister, bitname)      CLEARBIT(sregister, bitname)
00059 
00060 
00061 
00069 #define TOGGLEBIT( sregister, bitname ) \
00070                         __asm__( "st.w sp++, r7\n" \
00071                         "st.w sp++, r6\n" \
00072                         "mfsr r7, %0\n" \
00073                         "mov r6, 0\n" \
00074                         "sbr r6, %1\n" \
00075                         "eor r7, r6\n" \
00076                         "mtsr %0, r7\n" \
00077                         "ld.w r6, --sp\n" \
00078                         "ld.w r7, --sp\n" \
00079                         : \
00080                         :"X"(sregister), "g"(bitname) )
00081 
00082 #define TGLBIT(sregister, bitname)      TOGGLEBIT(sregister, bitname)
00083 
00084 
00085 
00092 #define READBITS(sregister, return_value) \
00093                         __asm__ __volatile__( "st.w sp++, r6\n" \
00094                         "mfsr r6, %1\n" \
00095                         "st.w %0, r6\n" \
00096                         "ld.w r6, --sp\n" \
00097                         : "=g"(return_value) \
00098                         :"X"(sregister) )
00099 
00100 #define GETBITS(sregister, return_value) READBITS(sregister, return_value)
00101 
00102 #endif /* End _MACRO_H_ */

Generated on Thu May 10 14:14:48 2007 for AVR321000 Communication with the AVR32 USART by  doxygen 1.5.1