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!