Hallo, ich möchte in ISim einen Dreieckszähler, als Dreieck-Waveform darstellen. Beispiel Sinus: http://www.lothar-miller.de/s9y/archives/57-Sinusausgabe-mit-PWM.html Mein Code stimmt, der Zähler läuft korrekt.
1 | -- Dreieckszähler
|
2 | pwm_triangle : process (clk_33mhz) |
3 | variable triangle_counter : integer; |
4 | variable counter_max : integer := 10; |
5 | variable dir : std_logic; |
6 | begin
|
7 | if (clk_33mhz'event and clk_33mhz = '1') then |
8 | if (rst='1') then |
9 | triangle_counter := 0; |
10 | else
|
11 | if (dir = '0') then |
12 | --aufwärts zählen
|
13 | if (triangle_counter < (counter_max-1)) then |
14 | triangle_counter := (triangle_counter + 1); |
15 | else
|
16 | dir := '1'; |
17 | triangle_counter := (triangle_counter - 1); |
18 | end if; |
19 | else
|
20 | --abwärts zählen
|
21 | if (triangle_counter > 0) then |
22 | triangle_counter := (triangle_counter - 1); |
23 | else
|
24 | dir := '0'; |
25 | triangle_counter := (triangle_counter + 1); |
26 | end if; |
27 | end if; |
28 | zaehler <= triangle_counter; |
29 | end if; |
30 | end if; |
31 | end process; |
Danke für die Hilfe Gruß Camel