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 }