hw_mcp41.h

Go to the documentation of this file.
00001 
00040 #ifndef HW_MCP41_H
00041 #define HW_MCP41_H
00042 
00043 #include <mcp41_map.h>
00044 #include <cfg/compiler.h>
00045 #include <cpu/irq.h>
00046 #include <avr/io.h>
00047 
00048 extern const uint16_t mcp41_ports[MCP41_CNT];
00049 extern const uint8_t  mcp41_pins[MCP41_CNT];
00050 
00054 INLINE void SET_MCP41_DDR(Mcp41Dev dev)
00055 {
00056     /* DDR port is 1 address before PORT */
00057     ATOMIC(_SFR_IO8(mcp41_ports[dev] - 1) |= mcp41_pins[dev]);
00058 }
00059 
00060 INLINE void MCP41_ON(Mcp41Dev i)
00061 {
00062     ATOMIC(_SFR_IO8(mcp41_ports[i]) &= ~mcp41_pins[i]);
00063 }
00064 
00065 INLINE void MCP41_OFF(Mcp41Dev i)
00066 {
00067     ATOMIC(_SFR_IO8(mcp41_ports[i]) |= mcp41_pins[i]);
00068 }
00069 
00070 
00071 #endif /* HW_MCP41_H */