public void Toggle() { int pin = 18; WiringPiWrapper.WiringPiSetupGpio(); WiringPiWrapper.PinMode(pin, PinType.OUTPUT); while (true) { WiringPiWrapper.DigitalWrite(pin, 0); WiringPiWrapper.DigitalWrite(pin, 1); } }
private void WriteHalfByte(int command) { WiringPiWrapper.DigitalWrite(D4Pin, command & 1); //TODO war da was mit parallel schreiben in der WiringPiLib?? WiringPiWrapper.DigitalWrite(D5Pin, command >> 1 & 1); WiringPiWrapper.DigitalWrite(D6Pin, command >> 2 & 1); WiringPiWrapper.DigitalWrite(D7Pin, command >> 3 & 1); WiringPiWrapper.DigitalWrite(EnablePin, 1); Thread.Sleep(DeleayInMs); WiringPiWrapper.DigitalWrite(EnablePin, 0); }
public const int BitTiefe = 4096; //12 bit 4096 werte public AD_MCP3201_SPI(IWiringPiWrapper iWiringPiWarpper, int cs, int clock, int data) { CS = cs; Clock = clock; Data = data; WiringPiWrapper = iWiringPiWarpper; WiringPiWrapper.PinMode(CS, PinType.OUTPUT); WiringPiWrapper.PinMode(Clock, PinType.OUTPUT); WiringPiWrapper.PinMode(Data, PinType.INPUT); WiringPiWrapper.DigitalWrite(CS, 1); //unselect WiringPiWrapper.DigitalWrite(Clock, 1); }
public const int BitTiefe = 4096; //12 bit 4096 werte public DA_8562FPZ_Parallel(IWiringPiWrapper wiringPiWarpper) { //Soll mit DigitalWritebyte arbeiten, das schreibt in die ersten 8 GPIO parallel (oder mehr?) //Daher gibt es hier aber eine feste Verdrahtung! WiringPiWrapper = wiringPiWarpper; WiringPiWrapper.PinMode(Data0, PinType.OUTPUT); WiringPiWrapper.PinMode(Data1, PinType.OUTPUT); WiringPiWrapper.PinMode(Data2, PinType.OUTPUT); WiringPiWrapper.PinMode(Data3, PinType.OUTPUT); WiringPiWrapper.PinMode(Data4, PinType.OUTPUT); WiringPiWrapper.PinMode(Data5, PinType.OUTPUT); WiringPiWrapper.PinMode(Data6, PinType.OUTPUT); WiringPiWrapper.PinMode(Data7, PinType.OUTPUT); WiringPiWrapper.PinMode(Data8, PinType.OUTPUT); WiringPiWrapper.PinMode(Data9, PinType.OUTPUT); WiringPiWrapper.PinMode(Data10, PinType.OUTPUT); WiringPiWrapper.PinMode(Data11, PinType.OUTPUT); WiringPiWrapper.PinMode(CE, PinType.OUTPUT); WiringPiWrapper.DigitalWrite(CE, 1); SetVoltage(0); }
public const int BitTiefe = 4096; //12 bit 4096 werte public DA_MCP4921_SPI(IWiringPiWrapper iWiringPiWarpper, int cs, int clock, int sdi) { CS = cs; Clock = clock; SDI = sdi; WiringPiWrapper = iWiringPiWarpper; WiringPiWrapper.PinMode(CS, PinType.OUTPUT); WiringPiWrapper.PinMode(Clock, PinType.OUTPUT); WiringPiWrapper.PinMode(SDI, PinType.OUTPUT); WiringPiWrapper.DigitalWrite(CS, 1); //unselect }
/// <summary> /// Soll Performanter sein: Setze Wert von 0 bis BitTiefe, eg 12 bit 4096 werte /// </summary> /// <param name="absoluteVale">Absolute vale.</param> public int ReadVoltage() { WiringPiWrapper.DigitalWrite(CS, 0); //select ReadBit(); ReadBit(); ReadBit(); //Die 16. fallende Flanke kommt nach dem LSB! ReadBit(); int value = 0; for (int i = BitTiefe / 2; i > 0; i = i / 2) { if (ReadBit() == 1) { value += i; } } WiringPiWrapper.DigitalWrite(CS, 1); //unselect return(value); }
/// <summary> /// Soll Performanter sein: Setze Wert von 0 bis BitTiefe, eg 12 bit 4096 werte /// </summary> /// <param name="absoluteVale">Absolute vale.</param> public void SetVoltage(int absoluteVale) { WiringPiWrapper.DigitalWrite(CS, 0); //select //Send Config Bits SendBit(0); //Ausgang A, Seite 18 DataSheet SendBit(0); //Unbuffered SendBit(1); //Direkt Prozente der ReferenzSpannung SendBit(1); //Output enabled for (int i = BitTiefe; i > 0; i = i / 2) { if ((i & absoluteVale) > 0) { SendBit(1); } else { SendBit(0); } } WiringPiWrapper.DigitalWrite(CS, 1); //unselect }
/// <summary> /// Soll Performanter sein: Setze Wert von 0 bis BitTiefe, eg 12 bit 4096 werte /// </summary> /// <param name="absoluteVale">Absolute vale.</param> public void SetVoltage(int absoluteVale) { WiringPiWrapper.DigitalWriteByte(absoluteVale & 0xff); WiringPiWrapper.DigitalWrite(Data8, (absoluteVale & 256) > 0 ? 1 : 0); WiringPiWrapper.DigitalWrite(Data9, (absoluteVale & 512) > 0 ? 1 : 0); WiringPiWrapper.DigitalWrite(Data10, (absoluteVale & 1024) > 0 ? 1 : 0); WiringPiWrapper.DigitalWrite(Data11, (absoluteVale & 2048) > 0 ? 1 : 0); WiringPiWrapper.DigitalWrite(CE, 0); WiringPiWrapper.DigitalWrite(CE, 1); }