Hallo, Leute!
Folgendes Problem: ich habe eine RnbFra 1.2 auf der ich einen ATMega128
eingebaut habe.
Bisher hat der µC mit einem 8MHz-Takt problemlos seine Arbeit gemacht.
Jetzt habe ich einen neuen Quarz eingebaut, und läuft das ganze mit
16MHz-Takt.
In Prinzip läuft alles noch problemlos, bis auf dem Servocontroller
(ATTiny, mit 4MHz-Takt).
Dazu, beim Compilieren, kriege ich folgendes Warning:
1 | large integer implicitly truncated to unsigned type
|
bei der Zeile:
1 | TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
|
Ich nutze die I2C-Library von Fleury und F_CPU ist 16000000UL und
SCL_CLOCK 20000L.
Wenn ich manuell diese Berechnung ausführe, sehe ich daß ich versuche
ein Wert vom 392 in den Register TWBR zu speichern.
Wenn ich aber richtig verstanden habe, ist TWBR ein 8-Bit Register.
Also, die Warnung ist richtig, und ist zu verstehen, warum die
Kommunikation mit dem ATTiny ab und zu gestört ist.
Nun, da ich weiß daß der ATMega128 problemlos mit einem Takt vom 16MHz
laufen kann, welches Wert soll ich genau in diesen Register schreiben?
Da die Library auf dem ATTiny eine Grenze hat, muß ich unbedingt ein
I2C-Clock vom 20KHz nutzen.
Ich danke euch für eure Hilfe!
Luca Bertoncello