printf bringt HC12 zum Absturz

Gast #1026877
Lesenswert?

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
}
Gast #1026886
Lesenswert?

Ich kenne deinen Controller nicht muss ich vorweg
sagen. Benutzt printf() evtl. putchar() zur Zeichenausgabe?
Dann ist es keine gute Idee putchar() in einem
Interrupt aufzurufen und printf() in main().

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren