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