Esempio n. 1
0
void K3b::DataModeWidget::loadConfig( const KConfigGroup& c )
{
    QString datamode = c.readEntry( "data_track_mode" );
    if( datamode == "mode1" )
        setDataMode( K3b::DataMode1 );
    else if( datamode == "mode2" )
        setDataMode( K3b::DataMode2 );
    else
        setDataMode( K3b::DataModeAuto );
}
Esempio n. 2
0
File: spi.cpp Progetto: TMRh20/RF24
void SPI::beginTransaction(SPISettings settings) {

    pthread_mutex_lock (&spiMutex);
    setBitOrder(settings.border);
    setDataMode(settings.dmode);
    setClockDivider(settings.clck);
}
Esempio n. 3
0
SPIDaisyChain::SPIDaisyChain(const int pinCS, const int nDaisyChains)
{
	// default setting
	_pinCS			= (uint8_t)pinCS;
	_nDaisyChains	= (uint8_t)nDaisyChains;
	_bitOrder		= (uint8_t)MSBFIRST;
	_spiMode 		= (uint8_t)SPI_MODE3;


	readBytes = new byte[_nDaisyChains];

	// SPI settings
	pinMode(_pinCS, OUTPUT);
	digitalWrite(_pinCS, HIGH);
	SPIClass::begin();
	setBitOrder(_bitOrder);
	setDataMode(_spiMode);

	// select function for rise/fall CS
	if (_pinCS > 7) {
		_pinCS -= 8;
		fallCS = &SPIDaisyChain::fallCSPORTB;
		riseCS = &SPIDaisyChain::riseCSPORTB;
	} else {
		fallCS = &SPIDaisyChain::fallCSPORTD;
		riseCS = &SPIDaisyChain::riseCSPORTD;
	}
}
Esempio n. 4
0
void OS_SoftSPIClass::configure(byte mosi, byte miso, byte sck) {
  m_mosi = mosi;
  m_miso = miso;
  m_sck = sck;

  //
  // http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus//
  // states that the default is MSB first.
  //

  m_lsbFirst = false;

  // Default to SPI_MODE0
  setDataMode(SPI_MODE0);

  //
  // Set our data setup and hold timings to a 1 us, which
  // should work for most devices. For higher speed interfaces,
  // the caller can override with zero. For slower devices, or
  // devices on longer/higher capacitance wires, later
  // call can increase these values.
  //

  setInterfaceTimings(1, 1, 1);
}
Esempio n. 5
0
void SPIClass::begin()
{
    init();
    // NPCS control is left to the user
    // Default speed set to 4Mhz
    setClockDivider(BOARD_SPI_DEFAULT_SS, 21);
    setDataMode(BOARD_SPI_DEFAULT_SS, SPI_MODE0);
    setBitOrder(BOARD_SPI_DEFAULT_SS, MSBFIRST);
}
Esempio n. 6
0
SPIClass::SPIClass(USART_TypeDef *_spi, uint32_t _id, CMU_Clock_TypeDef UartClk, const SPIPinSettings *_pinSettings) :
	spi(_spi), id(_id), pinSettings(_pinSettings), spi_clk(UartClk)
{
	
	setBitOrder(true);
	setDataMode(usartClockMode0);
	//setClockDivider(84);
	/*SPI_Configure(spi, id, SPI_MR_MSTR | SPI_MR_PS | SPI_MR_MODFDIS);
	SPI_Enable(spi);*/
}
TEST(RFM69W, setDataMode) {
  RFM_DATAMODE dm = RFM_DATAMODE_CONTWITHOUTSYNC;
  std::queue<int> responses;
  std::queue<std::tuple<unsigned char, unsigned char>> resps;

  resps.push(std::make_tuple(0x02, 0x00));
  resps.push(std::make_tuple(0x00, 0b11000001));
  resps.push(std::make_tuple(0x82, 0x00));
  resps.push(std::make_tuple(0b11100001, 0x00));

  EXPECT_EQ(0, setDataMode(&dm, fakeSpiFun, &resps));
}
Esempio n. 8
0
File: SPI.cpp Progetto: Eih3/v0.83
void SPIClass::begin() {
	initCb();
	SPI_Configure(spi, id, SPI_MR_MSTR | SPI_MR_PS | SPI_MR_MODFDIS);
	SPI_Enable(spi);

	// NPCS control is left to the user

	// Default speed set to 4Mhz
	setClockDivider(BOARD_SPI_DEFAULT_SS, 21);
	setDataMode(BOARD_SPI_DEFAULT_SS, SPI_MODE0);
	setBitOrder(BOARD_SPI_DEFAULT_SS, MSBFIRST);
}
Esempio n. 9
0
void SPIClass::begin(uint8_t _pin)
{
    init();
    uint32_t spiPin = BOARD_PIN_TO_SPI_PIN(_pin);
    PIO_Configure(
        g_APinDescription[spiPin].pPort,
        g_APinDescription[spiPin].ulPinType,
        g_APinDescription[spiPin].ulPin,
        g_APinDescription[spiPin].ulPinConfiguration);
    // Default speed set to 4Mhz
    setClockDivider(_pin, 21);
    setDataMode(_pin, SPI_MODE0);
    setBitOrder(_pin, MSBFIRST);
}
Esempio n. 10
0
void SPIClass::begin(uint16_t divider, uint8_t bitOrder, uint8_t dataMode)
{
  setClockDivider(divider);
  setBitOrder(bitOrder);
  setDataMode(dataMode);

  //Set CS pins polarity to low
  bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, 0);

  bcm2835_spi_begin();

  //Initialize a timestamp for millis calculation
  gettimeofday(&RHStartTime, NULL);
}
// write either command or data, with automatic 4/8-bit selection
void LiquidCrystalNew_SSPI::send(uint8_t value, byte mode) {
	byte en = _en1;
	if (_multipleChip && getChip()) en = _en2;
	//delayMicroseconds(DELAYPERCHAR);
	setDataMode(mode);					// I2C & SPI
		bitWrite(_theData,LCDPIN_D4,value & 0x10);
		bitWrite(_theData,LCDPIN_D5,value & 0x20);
		bitWrite(_theData,LCDPIN_D6,value & 0x40);
		bitWrite(_theData,LCDPIN_D7,value & 0x80);
		pulseEnable(en);
		bitWrite(_theData,LCDPIN_D4,value & 0x01);
		bitWrite(_theData,LCDPIN_D5,value & 0x02);
		bitWrite(_theData,LCDPIN_D6,value & 0x04);
		bitWrite(_theData,LCDPIN_D7,value & 0x08);

		bitWrite(_theData,LCDPIN_LD,_backLight);//Background led
	pulseEnable(en);
	}
// write either command or data, with automatic 4/8-bit selection
void LiquidCrystalNew_T3TWI::send(uint8_t value, byte mode) {
	byte en = _en1;
	if (_multipleChip){
		if (getChip()) en = _en2;
	}	
	setDataMode(mode);					// I2C & SPI
		bitWrite(_theData,LCDPIN_D4,value & 0x10);
		bitWrite(_theData,LCDPIN_D5,value & 0x20);
		bitWrite(_theData,LCDPIN_D6,value & 0x40);
		bitWrite(_theData,LCDPIN_D7,value & 0x80);
		pulseEnable(en);
		bitWrite(_theData,LCDPIN_D4,value & 0x01);
		bitWrite(_theData,LCDPIN_D5,value & 0x02);
		bitWrite(_theData,LCDPIN_D6,value & 0x04);
		bitWrite(_theData,LCDPIN_D7,value & 0x08);

		bitWrite(_theData,LCDPIN_LD,_backLight);//Background led
	pulseEnable(en);
}
Esempio n. 13
0
void SPIClass::begin()
{
    pinMode(pinSCK, OUTPUT);
    pinMode(pinMOSI, OUTPUT);
    pinMode(pinMISO, INPUT);

    spi->PSELSCK = pinSCK;
    spi->PSELMOSI = pinMOSI;
    spi->PSELMISO = pinMISO;

	// Default speed set to 4Mhz
	setFrequency(4000);
	setDataMode(SPI_MODE0);
	setBitOrder(MSBFIRST);

    spi->EVENTS_READY = 0;

	spi->ENABLE = (SPI_ENABLE_ENABLE_Enabled << SPI_ENABLE_ENABLE_Pos);
}
void LiquidCrystalNew_T3TWI::initChip(uint8_t dotsize, byte witchEnablePin) {  
	byte	displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
	byte i;
	if (_lcd_lines > 1) displayfunction |= LCD_2LINE;
	// for some 1 line displays you can select a 10 pixel high font
	if ((dotsize != 0) && (_lcd_lines == 1)) displayfunction |= LCD_5x10DOTS;

	for (i=0;i<18;i++) {
		delayMicroseconds(LCD_STARTUP_DLY);
	}

	setDataMode(0);//COMMAND MODE
	writeGpio(_theData & ~witchEnablePin);  // En LOW---------------------------------------*/
	write4bits(0x03);
	delayMicroseconds(5000); // I have one LCD for which 4500 here was not long enough.
	// second try
	write4bits(0x03);      
	delayMicroseconds(150); // wait 
	// third go!
	write4bits(0x03); 
	delayMicroseconds(150);
	// finally, set to 4-bit interface
	write4bits(0x02); 
	delayMicroseconds(150);
	// finally, set # lines, font size, etc.
	command(LCD_FUNCTIONSET | displayfunction);  
	// turn the display on with no cursor or blinking default
	_displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF;  
	display();
	// clear it off
	clear();
	// Initialize to default text direction (for romance languages)
	_displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT;
	// set the entry mode
	command(LCD_ENTRYMODESET | _displaymode);	
	noAutoscroll();
}