add take data sample of 12bit and send to peripheral
This commit is contained in:
parent
b6c18dbd2e
commit
598911870c
18
main.c
18
main.c
|
@ -15,8 +15,7 @@ void I2C0_init(void) {
|
|||
SYSCTL_RCGCGPIO_R |= 0x02; // GPIO PORTB CLOCK ENABLE
|
||||
|
||||
while ((SYSCTL_PRGPIO_R & 0x02) == 0)
|
||||
{
|
||||
// DELAY TO ENSURE CLOCK IS STABILIZED
|
||||
{ // DELAY TO ENSURE CLOCK IS STABILIZED
|
||||
};
|
||||
|
||||
GPIO_PORTB_AFSEL_R |= 0x0C; // ENABLE ALERNATE FUNCTION FOR PB2 AND PB3
|
||||
|
@ -29,7 +28,7 @@ void I2C0_init(void) {
|
|||
I2C0_MTPR_R = 0x07; // SET CLOCK
|
||||
}
|
||||
|
||||
void I2C0_WRITE(uint8_t PERIPHERAL_ADDRESS, uint8_t ANALOG_SAMPLE_MSB, uint8_t ANALOG_SAMPLE_LSB)
|
||||
void I2C0_SEND(uint8_t PERIPHERAL_ADDRESS, uint8_t ANALOG_SAMPLE_MSB, uint8_t ANALOG_SAMPLE_LSB) // DEFINE I2C0 SEND FUNCTION TO PERIPHERAL ADDRESS AND 12 BIT DATA
|
||||
{
|
||||
I2C0_MSA_R = (PERIPHERAL_ADDRESS << 1); // SET PERIPHERAL ADDRESS, WRITE
|
||||
I2C0_MDR_R = ANALOG_SAMPLE_MSB; // MSB
|
||||
|
@ -60,6 +59,19 @@ void delay(int us)
|
|||
STCTRL &= ~ENABLE; // STOP TIMER
|
||||
}
|
||||
|
||||
#define MCP4725_ADDRESS 0x60 // PERIPHERAL I2C ADDRESS
|
||||
|
||||
void AOUT(uint16_t ANALOG_SAMPLE)
|
||||
{
|
||||
uint8_t ANALOG_SAMPLE_MSB = (ANALOG_SAMPLE >> 8) & 0x0F; // TAKE UPPER 4 BITS OF 12 BIT DATA TO TRANSMIT
|
||||
uint8_t ANALOG_SAMPLE_LSB = ANALOG_SAMPLE & 0xFF; // TAKE LOWER 8 BITS OF 12 BIT DATA TO TRANSMIT
|
||||
|
||||
I2C0_SEND(MCP4725_ADDRESS, ANALOG_SAMPLE_MSB, ANALOG_SAMPLE_LSB); //SEND 12 BIT DATA
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
systick_setting(); // SysTick setup
|
||||
|
|
Loading…
Reference in New Issue