Hallo,
ich experimentiere zur zeit mit dem PICDEM 2 Demoboard. Der Takt wird
hier durch ein RC-Glied erzeugt, welches aus einem 4,7k Widerstand und
einer 22pf Kapazität besteht. Um den Takt genau zu bestimmen hab ich
folgendes Programm geschrieben:
1 | void high_prior_InterruptHandler(void)
|
2 | {
|
3 | // Timer zählt bis o,25 Sekunden. In der ISR wird x zurückgesetzt
|
4 |
|
5 | //hier steht noch lcd vorgeplänkel
|
6 |
|
7 | TMR1H = 0xDF; //interrupt nach 1/4 sec (32768/4 = 0x2000)
|
8 | TMR1L = 0xFF;
|
9 | x=0;
|
10 |
|
11 | PIR1bits.TMR1IF = 0;
|
12 | }
|
13 |
|
14 |
|
15 | void main (void)
|
16 | {
|
17 | init();
|
18 | while(1)
|
19 | {
|
20 | x++;
|
21 | }
|
22 | }
|
erwartet hätte ich etwas um die 250.000. Der Wert pendelt aber um die
25.000. Versteh ich einfach nicht, da mit den besagten Bauteilen ein
Takt von etwa 4MHZ entstehen sollte. Was ja bei 4 Takten/Operation zu
ca. 250000 Operationen in 1/4sec fühen müsste. Komme einfach nicht auf
den (Denk-)Fehler