mcp41.c
Go to the documentation of this file.00001 00039 #include "hw/hw_mcp41.h" 00040 00041 #include <cfg/macros.h> 00042 #include <cfg/compiler.h> 00043 00044 #include <drv/timer.h> 00045 #include <drv/mcp41.h> 00046 #include <kern/kfile.h> 00047 00048 static KFile *ch; 00049 00053 void mcp41_setResistance(Mcp41Dev dev, mcp41_res_t res) 00054 { 00055 MCP41_ON(dev); 00056 /* send command byte */ 00057 kfile_putc(MCP41_WRITE_DATA, ch); 00058 kfile_putc(((MCP41_HW_MAX * (uint32_t)res) + (MCP41_MAX / 2)) / MCP41_MAX, ch); 00059 kfile_flush(ch); 00060 00061 MCP41_OFF(dev); 00062 } 00063 00064 00068 void mcp41_init(KFile *_ch) 00069 { 00070 Mcp41Dev dev; 00071 00072 /* Init all potentiometer ports */ 00073 for (dev = 0; dev < MCP41_CNT; dev++) 00074 { 00075 SET_MCP41_DDR(dev); 00076 MCP41_OFF(dev); 00077 } 00078 00079 ch = _ch; 00080 }
