mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-11 22:24:13 +01:00
57 lines
1.4 KiB
C++
57 lines
1.4 KiB
C++
/*
|
|
* Copyright (c) 2010 by Cristian Maglie <c.maglie@bug.st>
|
|
* SPI Master library for arduino.
|
|
*
|
|
* This file is free software; you can redistribute it and/or modify
|
|
* it under the terms of either the GNU General Public License version 2
|
|
* or the GNU Lesser General Public License version 2.1, both as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef _SPI_H_INCLUDED
|
|
#define _SPI_H_INCLUDED
|
|
|
|
#include "variant.h"
|
|
#include <stdio.h>
|
|
|
|
#define SPI_CLOCK_DIV4 0x00
|
|
#define SPI_CLOCK_DIV16 0x01
|
|
#define SPI_CLOCK_DIV64 0x02
|
|
#define SPI_CLOCK_DIV128 0x03
|
|
#define SPI_CLOCK_DIV2 0x04
|
|
#define SPI_CLOCK_DIV8 0x05
|
|
#define SPI_CLOCK_DIV32 0x06
|
|
#define SPI_CLOCK_DIV64 0x07
|
|
|
|
#define SPI_MODE0 0x00
|
|
#define SPI_MODE1 0x02
|
|
#define SPI_MODE2 0x01
|
|
#define SPI_MODE3 0x03
|
|
|
|
#define SPI_MODE_MASK 0x03 // CPOL = bit 3, CPHA = bit 2 on SPCR
|
|
#define SPI_CLOCK_MASK 0x03 // SPR1 = bit 1, SPR0 = bit 0 on SPCR
|
|
#define SPI_2XCLOCK_MASK 0x01 // SPI2X = bit 0 on SPSR
|
|
|
|
class SPIClass
|
|
{
|
|
public:
|
|
static byte transfer( byte _data ) ;
|
|
|
|
// SPI Configuration methods
|
|
|
|
static void attachInterrupt( void ) ;
|
|
static void detachInterrupt( void ) ; // Default
|
|
|
|
static void begin( void ) ; // Default
|
|
static void end( void ) ;
|
|
|
|
static void setBitOrder( uint8_t ) ;
|
|
static void setDataMode( uint8_t ) ;
|
|
static void setClockDivider( uint8_t ) ;
|
|
} ;
|
|
|
|
extern SPIClass SPI;
|
|
|
|
|
|
#endif
|