parent
218faa6182
commit
546a9c7fde
|
@ -0,0 +1,20 @@
|
||||||
|
#ifndef __SI5351_H__
|
||||||
|
#define __SI5351_H__ __SI5351_H__
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "twi.h"
|
||||||
|
|
||||||
|
const uint8_t SI5351_ADDRESS = 96;
|
||||||
|
|
||||||
|
static inline uint8_t si5351_write8(uint8_t reg, uint8_t value) {
|
||||||
|
uint8_t data[3] = {reg, value};
|
||||||
|
return twi_write(SI5351_ADDRESS, data, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint8_t si5351_write16(uint8_t reg, uint16_t value) {
|
||||||
|
uint8_t data[3] = {reg, value & 0xFF, (value & 0xFF00) >> 8};
|
||||||
|
return twi_write(SI5351_ADDRESS, data, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -2,16 +2,19 @@
|
||||||
#include <util/delay.h>
|
#include <util/delay.h>
|
||||||
|
|
||||||
#include "twi.h"
|
#include "twi.h"
|
||||||
|
#include "si5351.h"
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
|
|
||||||
twi_init();
|
twi_init();
|
||||||
|
|
||||||
while(1) {
|
// Disable outputs
|
||||||
uint8_t data[] = {'T','E','S','T'};
|
si5351_write8(3, 0xFF);
|
||||||
twi_write(96, data, 4);
|
|
||||||
_delay_ms(10);
|
// Powerdown output drivers
|
||||||
}
|
si5351_write8(16, 0x80);
|
||||||
|
si5351_write8(17, 0x80);
|
||||||
|
si5351_write8(18, 0x80);
|
||||||
|
|
||||||
while(1);
|
while(1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ uint8_t twi_write(uint8_t address, uint8_t data[], uint8_t len) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
TWDR = address | TW_WRITE; // We want to write to the slave
|
TWDR = (address << 1) | TW_WRITE; // We want to write to the slave
|
||||||
TWCR = (1 << TWINT) | (1 << TWEN); // Trigger transmission, keep TWI enabled
|
TWCR = (1 << TWINT) | (1 << TWEN); // Trigger transmission, keep TWI enabled
|
||||||
|
|
||||||
// Wait for TWI unit to finish
|
// Wait for TWI unit to finish
|
||||||
|
|
Loading…
Reference in New Issue