Hallo geschätzte Forengemeinde!
Das hier ist mein erster Beitrag, allerdings lese ich schon etwas
heimlich mit und mir konnte so schon sehr gut weiter geholfen werden.
Nun zu meiner Frage:
Ich habe ein einfaches Programm in zwei verschiedenen IDEs laufen und es
läuft unterschiedlich schnell dabei ab (abhängig von der IDE).
Ich konnte nicht herausfinden woran das liegt und deswegen habe ich mich
hier nun auch mal zu Wort gemeldet.
Ich benutze einen XMC1100 auf einem XMC2Go-Board.
IDE1: DAVE 4.3.2
IDE2: µVision V5.24.2.0
Das Programm macht nichts anders als blinken auf Pin 1.1 (wenn es hier
blinkt läuft das Programm). Pin 0.5 "blinkt" auch und hat eine
Verbindung zu Pin 0.6 der als Eingang konfiguriert ist. Wenn nun dort
ein Signal ankommt soll wiederum Led1 (Pin 1.0) blinken. Das Ding macht
was es soll, aber kann mir den Geschwindigkeitsunterschied (des
Blinkintervalls) in den unterschiedlichen IDEs nicht erklären.
Testprogramm auf dem Chip:
1 | #include <XMC1100.h>
|
2 |
|
3 | void sleep()
|
4 | {
|
5 | int temp1 = 0;
|
6 | while(temp1 < 500000) temp1++;
|
7 | }
|
8 |
|
9 |
|
10 | int main()
|
11 | {
|
12 | //LEDS
|
13 | PORT1->IOCR0 |= (16UL<<3);
|
14 | PORT1->IOCR0 |= (16UL<<11);
|
15 |
|
16 | PORT0->IOCR4 |= (0x10<<11); //Pin 0.5 als Output
|
17 | PORT0->IOCR4 |= (0x00<<19); //Pin 0.6 als Input
|
18 |
|
19 | while(1)
|
20 | {
|
21 | PORT1->OUT ^= 0x02UL; //rechte LED: Programm laeuft!
|
22 | sleep();
|
23 |
|
24 | //PORT1->OUT |= 0x01UL;
|
25 |
|
26 | PORT0->OUT ^= (1<<5); //Pin 0.5 "blinkt" aehnlich der rechten LED
|
27 |
|
28 | if(PORT0->IN & (1<<6))
|
29 | {
|
30 | PORT1->OUT |= 0x01UL; //linke LED: Bruecke funktioniert
|
31 | }
|
32 | else
|
33 | {
|
34 | PORT1->OUT &= ~(0x01UL);
|
35 | }
|
36 |
|
37 | }
|
38 | return 0;
|
39 | }
|
Gruß marmus