mirror of
https://github.com/arduino/Arduino.git
synced 2025-01-18 07:52:14 +01:00
Fix Wire register
Move TWBR register from Wire.cpp to twi.c file.
This commit is contained in:
parent
9a8dd2a4a2
commit
26e25a4d58
@ -80,9 +80,9 @@ void TwoWire::end(void)
|
|||||||
twi_disable();
|
twi_disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TwoWire::setClock(uint32_t frequency)
|
void TwoWire::setClock(uint32_t clock)
|
||||||
{
|
{
|
||||||
TWBR = ((F_CPU / frequency) - 16) / 2;
|
twi_setFrequency(clock);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint32_t iaddress, uint8_t isize, uint8_t sendStop)
|
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint32_t iaddress, uint8_t isize, uint8_t sendStop)
|
||||||
|
@ -118,6 +118,22 @@ void twi_setAddress(uint8_t address)
|
|||||||
TWAR = address << 1;
|
TWAR = address << 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Function twi_setClock
|
||||||
|
* Desc sets twi bit rate
|
||||||
|
* Input Clock Frequency
|
||||||
|
* Output none
|
||||||
|
*/
|
||||||
|
void twi_setFrequency(uint32_t frequency)
|
||||||
|
{
|
||||||
|
TWBR = ((F_CPU / frequency) - 16) / 2;
|
||||||
|
|
||||||
|
/* twi bit rate formula from atmega128 manual pg 204
|
||||||
|
SCL Frequency = CPU Clock Frequency / (16 + (2 * TWBR))
|
||||||
|
note: TWBR should be 10 or higher for master mode
|
||||||
|
It is 72 for a 16mhz Wiring board with 100kHz TWI */
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Function twi_readFrom
|
* Function twi_readFrom
|
||||||
* Desc attempts to become twi bus master and read a
|
* Desc attempts to become twi bus master and read a
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
void twi_init(void);
|
void twi_init(void);
|
||||||
void twi_disable(void);
|
void twi_disable(void);
|
||||||
void twi_setAddress(uint8_t);
|
void twi_setAddress(uint8_t);
|
||||||
|
void twi_setFrequency(uint32_t);
|
||||||
uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t, uint8_t);
|
uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t, uint8_t);
|
||||||
uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t, uint8_t);
|
uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t, uint8_t);
|
||||||
uint8_t twi_transmit(const uint8_t*, uint8_t);
|
uint8_t twi_transmit(const uint8_t*, uint8_t);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user