Hallo,
beim Versuch Messwerte zu konvertieren, stehe ich momentan auf dem
Schlauch...
Mein Problem:
Ich lese auf einem Nexys4 Board mit dem XADC zwei Messwerte ein. Das ist
zum einen der Wert des internen Temperatursensors und der Wert eines
externen Sensors. Diese Werte möchte ich nun konvertieren, sodass ich
sie über eine Sieben-Segment-Anzeige darstellen kann.
Für die Sieben-Segment-Anzeige und die Ansteuerung des XADC habe ich
bereits Module geschrieben, die wie ich meine, auhc funktionieren. Um
sicherzugehen, dass es nicht am XADC liegt, gebe ich konstant den 12-Bit
Wert "101010101010" aus und versuche damit meine Konvertierung zu
erstellen.
Ich glaube, das Problem liegt in meiner Umrechnung, die wie folgt
aussieht:
1 | -- i_data_adc_1 = integer, Data_In 12 Bit Standard Logic Vector
|
2 | i_data_adc_1 <= (CONV_INTEGER(Data_In) / 8) - 273;
|
3 | -- Wert der 100er Stelle bestimmen
|
4 | count := 0;
|
5 | for i in 1 to 9 loop
|
6 | if i_data_adc_1 > 99 then
|
7 | i_data_adc_1 <= i_data_adc_1 - 100;
|
8 | count := count + 1;
|
9 | else
|
10 | exit;
|
11 | end if;
|
12 | end loop;
|
13 | -- data_adc_1_100s 6 Bit Vector der 100er Stelle enthält
|
14 | data_adc_1_100s <= std_logic_vector(to_unsigned(count, data_adc_1_100s'length);
|
15 | .
|
16 | .
|
17 | .
|
Genauso wie die 100er Stelle lese ich die 10er und 1er Stelle ein...
Allerdings erscheint auf meiner Anzeige immer der Wert "0" für alle drei
Stellen...
Ich hoffe jemand versteht mein Problem und kann mir aufzeigen, wo ich
falsch denke...
Danke!
Gruß, Torben