Hallo,
ich möchte in einem AVR das Frequency Tuning Word für einen DDS-IC
berechnen. Dabei habe ich bei folgendem Code unter avr-gcc 4.2.2
Probleme:
1 | int main () {
|
2 | double ftw_double;
|
3 | uint64_t ftw;
|
4 |
|
5 | //calculate frequency tuning word
|
6 | ftw_double = 86000000. / 300000000. * (1ULL<<48);
|
7 | ftw = ftw_double;
|
8 | }
|
Im AVR-Studio wird der Wert für ftw_double als 8.0689492E+013 angezeigt,
ftw besitzt allerdings den Wert 70368744161280. Kann mir jemand
erklären, wieso es hier zu so einer großen Abweichung bei der
Typumwandlung kommt?