Hallo, ich verwende einen PIC24FV32KA301 alle 250ms soll ein Timer interrupt ausgelöst werden. interner Oscilator (8Mhz mit 4xppl = 32Mhz 32/2 = 16Mhz mit einem Presc von 64 => alle 250ms => Period value =0xF424 nun ist es so das es ca alle 16 ms auftritt. Woran kann das liegen. Werden für den Timer4 16 Mhz auch akzeptiert oder wird der interne 8Mhz genommen
Gast
#5453326
0xF424 ist mal falsch, aber nicht die Ursache. 0xF423 wäre korrekt. Ich denke da hats was mit dem prescaler. der ist wohl nicht auf 64 sondern auf 8. Ansonst müsste der PIC mit dem 8x Takt laufen und das ist eher unwahrscheinlich.
Gast
#5453372
Hate M. schrieb: > interner Oscilator > (8Mhz mit 4xppl = 32Mhz > 32/2 = 16Mhz Ist die PLL auch wirklich eingeschaltet? IMHO mußte da man etwas mit "__builtin_write" machen. MfG Klaus
Folgende Einstellungen habe ich vorgenommen hier jetzt mit einem Interrupt von 1s.: Wenn ich nun messe kommt der Interrupt alle 4s. Leider finde ich einfach nicht heraus warum dies der Fall ist.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
Gast
#5453672
Hate M. schrieb: > __builtin_write_OSCCONH((uint8_t) ((0x0100 >> _OSCCON_NOSC_POSITION) & > 0x00FF)); > __builtin_write_OSCCONL((uint8_t) ((0x0100 | _OSCCON_OSWEN_MASK) & > 0xFF)); Ich bin jetzt zu faul, die Bitfummeleien und casts nachzuvollziehen, bei mir heists schlicht
1 | |
2 | |
3 | |
MfG Klaus
Deinen Vorschlag hatte ich auch schon probiert. Ohne Erfolg. Es bleibt bei den 4s
Gast
#5454108
#pragma config POSCFREQ = HS // Primary Oscillator Frequency Range Configuration bits->Primary oscillator/external clock input frequency greater than 8MHz #pragma config FCKSM = CSDCMD // Clock Switching and Monitor Selection->Both Clock Switching and Fail-safe Clock Monitor are disabled der fehler liegt genau hier :)
Gast
#5454109
einerseits wählst du den falschen taktgeber aus und dann deaktivierst du auch noch das clockswitching, so das du es im code auch nicht mehr ändern kannst.
morph1 schrieb: > du den falschen taktgeber aus und dann deaktivierst du > auch noch das clockswitching OK vielen Dank jetzt ist funktioniert es.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.