...sehr komisch, die Timer funktionieren wohl (LED blinken lassen etc.),
ich habe das ganze jetzt einfach mit Timer1 als up counter mit prescaler
1 und period 1 gemacht, vor dem zu beobachtendem code den timer
gestartet und nach dem code den counter wert geholt, der ist immer 0,
was nicht sein kann da der code :
1 | uint8_t screenBuffer[4800]; //(640*480) / (8*8)
|
2 | uint16_t tileBuffer0[16384]; //(8*8) * 256
|
3 | uint16_t line = 0;
|
4 | uint16_t col = 0;
|
5 | uint16_t screenBufferIndex;
|
6 | uint8_t tileBuffer0LineOffset;
|
7 | uint8_t tileBuffer0Col;
|
8 | uint16_t tileBuffer0Index;
|
9 |
|
10 | TIM_Cmd(TIM1, ENABLE);
|
11 |
|
12 | for (line = 0; line < 480; line++)
|
13 | {
|
14 | for (col = 0; col < 640; col++)
|
15 | {
|
16 | screenBufferIndex = (line / 8) * 80 + (col /8);
|
17 | tileBuffer0LineOffset = line % 8;
|
18 | tileBuffer0Col = col % 8;
|
19 | tileBuffer0Index = screenBuffer[screenBufferIndex] * 64 + (tileBuffer0LineOffset * 8) + tileBuffer0Col;
|
20 | pixelLine[col] = tileBuffer0[tileBuffer0Index];
|
21 | }
|
22 | }
|
23 |
|
24 | int timerValue = TIM_GetCounter(TIM1);
|
jawohl eindeutig mehr Zeit als 5,9ns benötigt.
Als ich Timer2 ausprobiert habe, habe ich ihn auch mal auf 1 Sekunde
eingestellt (prescaler = 42000-1; period = 2000-1;) da war timerValue
dann 303... alles sehr komisch...