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
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