Exemplo n.º 1
0
void    CC110x::readBurst(uint8_t *buf, uint8_t regAddr, uint8_t len) {					// read burst data from CC1101 via SPI
	cc1101_Select();																	// select CC1101
	wait_Miso();																		// wait until MISO goes low
	sendSPI(regAddr | READ_BURST);														// send register address
	for(uint8_t i=0 ; i<len ; i++) buf[i] = sendSPI(0x00);								// read result byte by byte
	cc1101_Deselect();																	// deselect CC1101
}
Exemplo n.º 2
0
static void WriteBuffer(word len, byte* data) {
    enableChip();
    sendSPI(ENC28J60_WRITE_BUF_MEM);
    while (len--)
        sendSPI(*data++);
    disableChip();
}
Exemplo n.º 3
0
void    CC110x::writeReg(uint8_t regAddr, uint8_t val) {								// write single register into the CC1101 IC via SPI
	cc1101_Select();																	// select CC1101
	wait_Miso();																		// wait until MISO goes low
	sendSPI(regAddr);																	// send register address
	sendSPI(val);																		// send value
	cc1101_Deselect();																	// deselect CC1101
}
Exemplo n.º 4
0
void    CC110x::writeBurst(uint8_t regAddr, uint8_t *buf, uint8_t len) {				// write multiple registers into the CC1101 IC via SPI
	cc1101_Select();																	// select CC1101
	wait_Miso();																		// wait until MISO goes low
	sendSPI(regAddr | WRITE_BURST);														// send register address
	for(uint8_t i=0 ; i<len ; i++) sendSPI(buf[i]);										// send value
	cc1101_Deselect();																	// deselect CC1101
}
Exemplo n.º 5
0
void enc28j60WriteOp(uint8_t op, uint8_t address, uint8_t data)
{
    enableChip();
    sendSPI(op | (address & ADDR_MASK));
    sendSPI(data);
    disableChip();
}
Exemplo n.º 6
0
uint8_t CC110x::readReg(uint8_t regAddr, uint8_t regType) {								// read CC1101 register via SPI
	cc1101_Select();																	// select CC1101
	wait_Miso();																		// wait until MISO goes low
	sendSPI(regAddr | regType);															// send register address
	uint8_t val = sendSPI(0x00);														// read result
	cc1101_Deselect();																	// deselect CC1101
	return val;
}
Exemplo n.º 7
0
void testTeamLEDPins()
{
  // Set up Team LEDs on MAX7219
  sendSPI(0x0200 + 0x04); m_wait(TEST_TEAM_LED_TIME_MS);
  sendSPI(0x0200 + 0x08); m_wait(TEST_TEAM_LED_TIME_MS);
  sendSPI(0x0200 + 0x00);
  //m_set(RED_LED); m_wait(TEST_TEAM_LED_TIME_MS);
  //m_set(BLUE_LED); m_wait(TEST_TEAM_LED_TIME_MS);
}
Exemplo n.º 8
0
void enc28j60WriteBuffer(uint16_t len, uint8_t* data)
{
    enableChip();
    sendSPI(ENC28J60_WRITE_BUF_MEM);
    while (len--)
        sendSPI(*data++);

    disableChip();
}
Exemplo n.º 9
0
static void ReadBuffer(word len, byte* data) {
    enableChip();
    sendSPI(ENC28J60_READ_BUF_MEM);
    while (len--) {
        sendSPI(0x00);
        *data++ = SPDR;
    }
    disableChip();
    *data='\0';
}
Exemplo n.º 10
0
static byte ReadOp(byte op, byte address) {
    enableChip();
    sendSPI(op | (address & ADDR_MASK));
    sendSPI(0x00);
    if (address & 0x80)
        sendSPI(0x00);
    byte result = SPDR;
    disableChip();
    return result;
}
Exemplo n.º 11
0
void enc28j60ReadBuffer(uint16_t len, uint8_t* data)
{
    enableChip();
    sendSPI(ENC28J60_READ_BUF_MEM);
    while (len--) {
        sendSPI(0x00);
        *data++ = SPDR;
    }
    disableChip();
}
Exemplo n.º 12
0
void enc28j60WriteBuffer(uint16_t len, uint8_t* data)
{
	if(len >= (MAX_FRAMELEN))
		return;

    enableChip();
    sendSPI(ENC28J60_WRITE_BUF_MEM);
    while (len--)
        sendSPI(*data++);

    disableChip();
}
Exemplo n.º 13
0
void enc28j60ReadBuffer(uint16_t len, uint8_t* data)
{
    enableChip();
    sendSPI(ENC28J60_READ_BUF_MEM);
    while (len--) 
    {
        sendSPI(0x00);
        *data++ = ReadSPDR();
    }
    disableChip();
    // Remove next line suggested by user epam - not needed
//    *data='\0';
}
Exemplo n.º 14
0
uint8_t enc28j60ReadOp(uint8_t op, uint8_t address)
{
        enableChip();
        // issue read command
        sendSPI(op | (address & ADDR_MASK));
        sendSPI(0x00);
        if (address & 0x80)
            sendSPI(0x00);

        byte result = SPDR;
        // release CS
        disableChip();
        return result;
}
Exemplo n.º 15
0
void updateStatusFlags()
{
// SPI communication using the MAX7219 IC
  sendSPI(0x0100 + LOW(statusFlags));
  sendSPI(0x0200 + HIGH(statusFlags));

  // MAX7219_DIN
  // MAX7219_CLK
  // MAX7219_LOAD

  // Connect   anodes to SEG lines
  // Connect cathodes to DIG lines 0 and 1

  //  RED LED connects to same anode as LED bar array segment 3
  // BLUE LED connects to same anode as LED bar array segment 4

  // Take datasheet of LED array: DC fwd curr & fwd volt
  // RSet will depend on these values (use table from MAX7219 datasheet)
  // Typical value may be 33kOhm between Vcc and pin 18 (ISet)
}
Exemplo n.º 16
0
void drawScreen (void)
{
    uint8_t k, value = 0;

    drawHorLineDOGS(0,101,9);       // Unterstrichene Überschrift
    drawBoxDOGS(0,32,7);            // Button Links
    drawBoxDOGS(34,67,7);           // Button Mitte
    drawBoxDOGS(69,101,7);          // Button Rechts

    // Zeichen für linken Button (Runter)
    setAddrDOGS(7,12);
    CD = DATA;
    for(k=0; k<(BUTTON_DRAW_WIDTH/2); k++)
    {
        value |= (0x04<<k);
        sendSPI(~value);
    }
    for(k=(BUTTON_DRAW_WIDTH/2); k>0; k--)
    {
        value &= ~(0x04<<k);
        sendSPI(~value);
    }
    value = 0;

    // Zeichen für rechten Button (Hoch)
    setAddrDOGS(7,81);
    CD = DATA;
    for(k=0; k<(BUTTON_DRAW_WIDTH/2); k++)
    {
        value |= (0x20>>k);
        sendSPI(~value);
    }
    for(k=(BUTTON_DRAW_WIDTH/2); k>0; k--)
    {
        value &= ~(0x20>>k);
        sendSPI(~value);
    }

    // Text für mittleren Button (OK)
    charChainDOGS(7,46,1,"OK");
}
Exemplo n.º 17
0
void drawCheckBox (uint8_t page, uint8_t column, bool ckecked)
{
        setAddrDOGS(page,column);

        CD = DATA;

        sendSPI(0x7E);
        sendSPI(0x42);

        if(ckecked)
        {
             sendSPI(0x5A);
             sendSPI(0x5A);
        }
        else
        {
            sendSPI(0x42);
            sendSPI(0x42);
        }
        sendSPI(0x42);
        sendSPI(0x7E);
}
Exemplo n.º 18
0
void testStatusLEDPins()
{
  sendSPI(0x0100 + 0x01); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0100 + 0x03); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0100 + 0x06); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0100 + 0x0C); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0100 + 0x18); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0100 + 0x30); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0100 + 0x60); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0100 + 0xC0); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0100 + 0x80); 
  sendSPI(0x0200 + 0x01); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0100 + 0x00); 
  sendSPI(0x0200 + 0x03); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0200 + 0x02); m_wait(TEST_STATUS_LED_TIME_MS);
  sendSPI(0x0200 + 0x00);
}
Exemplo n.º 19
0
static void WriteOp(byte op, byte address, byte data) {
    enableChip();
    sendSPI(op | (address & ADDR_MASK));
    sendSPI(data);
    disableChip();
}
Exemplo n.º 20
0
void    CC110x::cmdStrobe(uint8_t cmd) {												// send command strobe to the CC1101 IC via SPI
	cc1101_Select();																	// select CC1101
	wait_Miso();																		// wait until MISO goes low
	sendSPI(cmd);																		// send strobe command
	cc1101_Deselect();																	// deselect CC1101
}