Ich habe ein ganz einfaches Programm mit einem Interrupt und in der
main-Schleife wird der printf-Befehl genutzt.
Die Interrupt-Routine läuft einwandfrei durch, bis nach dem ersten
printf der Controller hängen bleibt. Alleine funktioniert der
printf-Befehl aber.
Wer kann mir helfen?
1 | #include <hc12.h>
|
2 | #include <912b32.h>
|
3 | #include <stdio.h>
|
4 |
|
5 | int Zaehler=0;
|
6 | int i=1234;
|
7 |
|
8 | #pragma interrupt_handler Zeitbasis
|
9 | void Zeitbasis(void)
|
10 | {
|
11 | TC0 = TCNT + 65530;
|
12 |
|
13 | Zaehler++;
|
14 | putchar('2');
|
15 |
|
16 | TFLG1 = 0x01;
|
17 | }
|
18 |
|
19 | void main(void)
|
20 | {
|
21 | *((unsigned char *)0x0be8) = 0x06;
|
22 | *((void (**)(void))0x0be9) = Zeitbasis;
|
23 |
|
24 | TSCR=0x80;
|
25 | TMSK2=0x05;
|
26 | TIOS=0x01;
|
27 | TMSK1=0x01;
|
28 | TFLG1=0xFF;
|
29 |
|
30 | INTR_ON();
|
31 |
|
32 | while (1)
|
33 | {
|
34 | if (Zaehler == 50)
|
35 | {
|
36 | printf("Wert: %d \r",i);
|
37 |
|
38 | Zaehler = 0;
|
39 | }
|
40 | }
|
41 | }
|