@jmp
Danke für den Tipp, habs jetzt überarbeitet.
1 | #include <avr/io.h>
|
2 | #include "i2cmaster.h"
|
3 |
|
4 |
|
5 | #define TEA5767 0x60 // device address of tea5767 => 0b1100000
|
6 |
|
7 | unsigned char frequencyH = 0;
|
8 | unsigned char frequencyL = 0;
|
9 | unsigned int frequencyB;
|
10 | double frequency = 0;
|
11 |
|
12 | int main(void) {
|
13 |
|
14 | frequency = 87.5; //starting frequency
|
15 | frequencyB = (4*(frequency*1000000+225000))/32768; //calculating PLL word
|
16 | frequencyH = frequencyB>>8;
|
17 | frequencyL = frequencyB&0XFF;
|
18 |
|
19 | unsigned char ret;
|
20 | i2c_init(); // init I2C interface
|
21 | ret = i2c_start(TEA5767+I2C_WRITE); // set device address and write mode
|
22 |
|
23 | if ( ret ) {
|
24 | /* failed to issue start condition, possibly no device found */
|
25 | i2c_stop();
|
26 | }
|
27 | else {
|
28 | i2c_write(frequencyH);
|
29 | i2c_write(frequencyL);
|
30 | i2c_write(0xB0);
|
31 | i2c_write(0x10);
|
32 | i2c_write(0x00);
|
33 | i2c_stop();
|
34 | }
|
35 | for(;;);
|
36 | }
|
Das Layout ist erst mal nur ein Versuch gewesen, werde die Schaltung
morgen mal auf einem Breadboard aufbauen. Der Klinke-Ausgang geht an ein
paar alte Aktivboxen.