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
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
00073 for (dev = 0; dev < MCP41_CNT; dev++)
00074 {
00075 SET_MCP41_DDR(dev);
00076 MCP41_OFF(dev);
00077 }
00078
00079 ch = _ch;
00080 }