Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller hängt sich auf bei SCI Kommunikation


von Peter M. (allforone)


Lesenswert?

Hallo Com,
ich habe folgendes Problem:
Mein Mikrocontroller (MC9S08AW609: 
http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08AW60.pdf) 
hängt sich beim Empfangen von Daten leider auf.

Ich benutze HTerm zur Komunikation mit dem PC.
Das Senden funktioniert einwandfrei, Daten können ansich auch empfangen 
werden nur eben nur kurz bzw. manchmal.

Hier werden die Funktionen aufgerufen, die Daten senden und empfangen 
sollen.
1
while(j<1){ 
2
        SCI_WRITE(0x48);
3
        SCI_READ();
4
        dummy = SCI_READ2();
5
        SCI_WRITE(dummy);
6
        SCI_READ();
7
      
8
        
9
10
        j++;
11
        }

Hier die drei Funktionen. Am Ende soll nur eine Readfunktion existieren, 
dass ist klar. Doch das ist gerade nur zu Testzwecken. Mal tue ich den 
ResetWatchdog bei der einen rein mal nicht, etc um zu testen.
1
void SCI_WRITE(byte b){    
2
3
  if(SCI2S1_TDRE == 1){
4
    SCI2D = b;
5
  }
6
  while(SCI2S1_TC == 0) {
7
  ;
8
  } 
9
}
10
11
void SCI_READ(void) {
12
13
 byte dummy;
14
 
15
  while (SCI2S1_RDRF == 0) {
16
   ;
17
  }
18
  dummy = SCI2D; 
19
}
20
21
byte SCI_READ2(void) {
22
23
 byte dummy;
24
 
25
  while (SCI2S1_RDRF == 0) {
26
  ;
27
  }
28
  dummy = SCI2D;
29
  
30
  return dummy; 
31
}

Hat eventuell einer einen Ansatzpunkt? Das würde mir schon reichen 
genauer suchen kann ich dann selber.

Dankeschöön!

von Peter M. (allforone)


Lesenswert?

Irgendwas mit den Flags passt da noch nicht...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.