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