Hallo,
ich habe mit dem PIC16F716 eine PWM einprogrammiert aufgebaut, der eine
7-Segment-Anzeige dimmt.
Ich betreibe den PIC mit 4.194304MHz, und die interne 10Bit PWM ist auf
die höchste Auflösung eingestellt (Obergrenze Timer2 = 255).
Leider ist auf der untersten Stufe
1 | CCPR1L = 0; DC1B0 = 1; DC1B1 = 0;
|
was einem Wert von 1 entspricht bei einem Maximalwert von 1023 die
Anzeige immer noch zu hell um in einem dunklen Raum verwendet zu werden
(Wecker).
Was kann ich tun? Hoier noch mein gesamter Initialisierungs-Code für die
PWM des PIC16F716:
1 | // *****
|
2 | // PWM settings
|
3 |
|
4 | // enable PWM mode
|
5 | CCP1M0 = 0;
|
6 | CCP1M1 = 0;
|
7 | CCP1M2 = 1;
|
8 | CCP1M3 = 1;
|
9 |
|
10 | // only RB3 as an output, all other pins as digital IOs
|
11 | P1M0 = 0;
|
12 | P1M1 = 0;
|
13 |
|
14 | // PWM duty cycle
|
15 |
|
16 | // (two LSB of 10 Bit value)
|
17 | DC1B0 = 0;
|
18 | DC1B1 = 0;
|
19 |
|
20 | // (eight MSB of 10 Bit value)
|
21 | CCPR1L = 0;
|
22 |
|
23 | // upper limit of Timer2
|
24 | PR2 = 0xff;
|
25 |
|
26 | // set prescaler of Timer2 to 1:1
|
27 | T2CKPS0 = 0;
|
28 | T2CKPS1 = 0;
|
29 |
|
30 | // turn it on
|
31 | TMR2ON = 1;
|
Gruß
Jens