Hallo zusammen
Ich habe hier ein Board mit einem Mikrocontroller vom Typ Renesas
M16C/62P vor mir liegen. Das Flashen des Programms funktioniert
einwandfrei.
Mein Problem liegt allerdings darin, dass ich aus meiner main()-Funktion
keine andere Funktionen aufrufen kann, zumindest wird nicht korrekt in
die aufrufende Funktion zurückgesprungen.
Hier mein Minimalbespiel:
1 | void test() {
|
2 | unsigned int i=10000;
|
3 | while(--i > 0) {}
|
4 | }
|
5 |
|
6 | int main() {
|
7 | unsigned int i = 0;
|
8 |
|
9 | PD6_4 = 1; // LED0
|
10 | PD8_7 = 1; // LED1
|
11 |
|
12 | P6_4 = 1;
|
13 | P8_7 = 1;
|
14 |
|
15 | test();
|
16 |
|
17 | while (1) {
|
18 | while (i++<9500) {}
|
19 | test(); // -> LED leuchtet dauerhaft (P8_7=0 wird nicht erreicht)
|
20 | P8_7=1;
|
21 | while (i++<10000) {}
|
22 | P8_7=0;
|
23 | i=0;
|
24 | }
|
25 |
|
26 | return 0;
|
27 | }
|
Lösche ich die markierte Zeile, funktioniert das Programm einwandfrei.
Zur Kompilierung verwende ich folgenden Befehl:
1 | m32c-elf-gcc -Wall -mcpu=m16c -o ledtest.elf main.c
|
Hat jemand eine Idee woran das liegen könnte?
Vielen Dank für eure Hilfe.
Grüsse
Peter