Skip to content

Commit

Permalink
update definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
xukangmin committed Feb 21, 2021
1 parent ffb7cfa commit bbac14d
Show file tree
Hide file tree
Showing 11 changed files with 1,197 additions and 978 deletions.
2 changes: 1 addition & 1 deletion avr/cores/tiny/WInterrupts.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@

static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS];

void attachInterrupt(uint8_t pin, void (*userFunc)(void), PinStatus mode) {
void attachInterrupt(uint8_t pin, void (*userFunc)(void), uint8_t mode) {

/* Get bit position and check pin validity */
uint8_t bit_pos = digitalPinToBitPosition(pin);
Expand Down
62 changes: 37 additions & 25 deletions avr/cores/tiny/api/Common.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,37 @@ extern "C"{

void yield(void);

typedef enum {
LOW = 0,
HIGH = 1,
CHANGE = 2,
FALLING = 3,
RISING = 4,
} PinStatus;

typedef enum {
INPUT = 0x0,
OUTPUT = 0x1,
INPUT_PULLUP = 0x2,
INPUT_PULLDOWN = 0x3,
} PinMode;

typedef enum {
LSBFIRST = 0,
MSBFIRST = 1,
} BitOrder;
#define LOW 0x00
#define HIGH 0x01
#define CHANGE 0x04
#define FALLING 0x02
#define RISING 0x03
#define INPUT 0x00
#define OUTPUT 0x01
#define INPUT_PULLUP 0x02
#define LSBFIRST 0x00
#define MSBFIRST 0x01
#define FLOAT HIGH

// typedef enum {
// LOW = 0,
// HIGH = 1,
// CHANGE = 2,
// FALLING = 3,
// RISING = 4,
// } PinStatus;

// typedef enum {
// INPUT = 0x0,
// OUTPUT = 0x1,
// INPUT_PULLUP = 0x2,
// INPUT_PULLDOWN = 0x3,
// } PinMode;

// typedef enum {
// LSBFIRST = 0,
// MSBFIRST = 1,
// } BitOrder;

#define PI 3.1415926535897932384626433832795
#define HALF_PI 1.5707963267948966192313216916398
Expand Down Expand Up @@ -100,9 +112,9 @@ typedef uint32_t pin_size_t;
typedef uint8_t pin_size_t;
#endif

void pinMode(pin_size_t pinNumber, PinMode pinMode);
void digitalWrite(pin_size_t pinNumber, PinStatus status);
PinStatus digitalRead(pin_size_t pinNumber);
void pinMode(pin_size_t pinNumber, uint8_t mode);
void digitalWrite(pin_size_t pinNumber, uint8_t val);
int8_t digitalRead(pin_size_t pinNumber);
int analogRead(pin_size_t pinNumber);
void analogReference(uint8_t mode);
void analogWrite(pin_size_t pinNumber, int value);
Expand All @@ -114,10 +126,10 @@ void delayMicroseconds(unsigned int us);
unsigned long pulseIn(pin_size_t pin, uint8_t state, unsigned long timeout);
unsigned long pulseInLong(pin_size_t pin, uint8_t state, unsigned long timeout);

void shiftOut(pin_size_t dataPin, pin_size_t clockPin, BitOrder bitOrder, uint8_t val);
pin_size_t shiftIn(pin_size_t dataPin, pin_size_t clockPin, BitOrder bitOrder);
void shiftOut(pin_size_t dataPin, pin_size_t clockPin, uint8_t bitOrder, uint8_t val);
pin_size_t shiftIn(pin_size_t dataPin, pin_size_t clockPin, uint8_t bitOrder);

void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, PinStatus mode);
void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, uint8_t mode);
void detachInterrupt(pin_size_t interruptNumber);

void setup(void);
Expand Down
6 changes: 3 additions & 3 deletions avr/cores/tiny/wiring_digital.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ __attribute__((weak)) bool isDoubleBondedActive(uint8_t pin __attribute__((unus
return false;
};

void pinMode(uint8_t pin, PinMode mode)
void pinMode(uint8_t pin, uint8_t mode)
{
uint8_t bit_mask = digitalPinToBitMask(pin);

Expand Down Expand Up @@ -141,7 +141,7 @@ static void turnOffPWM(uint8_t pin)
}
}

void digitalWrite(uint8_t pin, PinStatus val)
void digitalWrite(uint8_t pin, uint8_t val)
{
/* Get bit mask for pin */
uint8_t bit_mask = digitalPinToBitMask(pin);
Expand Down Expand Up @@ -204,7 +204,7 @@ void digitalWrite(uint8_t pin, PinStatus val)

}

PinStatus digitalRead(uint8_t pin)
int8_t digitalRead(uint8_t pin)
{
/* Get bit mask and check valid pin */
uint8_t bit_mask = digitalPinToBitMask(pin);
Expand Down
4 changes: 2 additions & 2 deletions avr/cores/tiny/wiring_shift.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

#include <Arduino.h>

uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, BitOrder bitOrder) {
uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) {
uint8_t value = 0;
uint8_t i;

Expand All @@ -37,7 +37,7 @@ uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, BitOrder bitOrder) {
return value;
}

void shiftOut(uint8_t dataPin, uint8_t clockPin, BitOrder bitOrder, uint8_t val)
void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
{
uint8_t i;

Expand Down
2 changes: 1 addition & 1 deletion avr/libraries/SPI/src/SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ void SPIClass::endTransaction(void)
}
}

void SPIClass::setBitOrder(BitOrder order)
void SPIClass::setBitOrder(uint8_t order)
{
if (order == LSBFIRST)
SPI0.CTRLA |= (SPI_DORD_bm);
Expand Down
8 changes: 4 additions & 4 deletions avr/libraries/SPI/src/SPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@

class SPISettings {
public:
SPISettings(uint32_t clock, BitOrder bitOrder, uint8_t dataMode) {
SPISettings(uint32_t clock, uint8_t bitOrder, uint8_t dataMode) {
if (__builtin_constant_p(clock)) {
init_AlwaysInline(clock, bitOrder, dataMode);
} else {
Expand All @@ -66,11 +66,11 @@ class SPISettings {
SPISettings() { init_AlwaysInline(4000000, MSBFIRST, SPI_MODE0); }

private:
void init_MightInline(uint32_t clock, BitOrder bitOrder, uint8_t dataMode) {
void init_MightInline(uint32_t clock, uint8_t bitOrder, uint8_t dataMode) {
init_AlwaysInline(clock, bitOrder, dataMode);
}

void init_AlwaysInline(uint32_t clock, BitOrder bitOrder, uint8_t dataMode) __attribute__((__always_inline__)) {
void init_AlwaysInline(uint32_t clock, uint8_t bitOrder, uint8_t dataMode) __attribute__((__always_inline__)) {
// Clock settings are defined as follows. Note that this shows SPI2X
// inverted, so the bits form increasing numbers. Also note that
// fosc/64 appears twice. If FOSC is 16 Mhz
Expand Down Expand Up @@ -162,7 +162,7 @@ class SPIClass {
void begin();
void end();

void setBitOrder(BitOrder order);
void setBitOrder(uint8_t order);
void setDataMode(uint8_t uc_mode);
void setClockDivider(uint8_t uc_div);

Expand Down
Loading

0 comments on commit bbac14d

Please sign in to comment.