Hallo liebe Leute ! Ich habe folgendes Problem: Ich habe ein µC Programm geschrieben welches Daten über die serielle Schnittstelle empfangen soll. Das ganze ist eigentlich ganz einfach. Über ein Java Programm schicke ich einen 8 stelligen, binären Wert. Nun hängt an meinem µC an den Ausgangspings eine Platine mit 8Leds. Diese 8 Leds sind parallel geschalten, so dass ich jede einzeln ansteuern kann. Nun ist mein Problem, dass das mit dem empfangen leider nicht so funktioniert wie ich mir das vorstelle. D.h ich komme zwar in die Schleife die empfangen soll aber weiter geht es nicht. Wie ich festgestellt habe liegt es daran, dass das Flag ri0 welches anspringen sollte wenn Daten kommen sich nicht ändert. Könnt ihr mir vielleicht sagen was an dem Programm falsch ist ?
1 | $include (c8051f330.inc) ; Include register definition file. |
2 | |
3 | |
4 | |
5 | ;----------------------------------------------------------------------------- |
6 | ; RESET and INTERRUPT VECTORS |
7 | ;----------------------------------------------------------------------------- |
8 | |
9 | ; Reset Vector |
10 | cseg AT 0 |
11 | ljmp Main ; Locate a jump to the start of |
12 | ; code at the reset vector. |
13 | |
14 | ;----------------------------------------------------------------------------- |
15 | ; CODE SEGMENT |
16 | ;----------------------------------------------------------------------------- |
17 | |
18 | |
19 | Blink segment CODE |
20 | |
21 | rseg Blink ; Switch to this code segment. |
22 | using 0 ; Specify register bank for the |
23 | ; following program code. |
24 | |
25 | Main: |
26 | ; Disable the WDT. |
27 | anl PCA0MD, #NOT(040h) ; clear Watchdog Enable bit |
28 | |
29 | ; Enable the Port I/O Crossbar |
30 | orl P0SKIP, #0ffh ; skip LED pin in crossbar |
31 | ; assignments |
32 | mov XBR1, #40h ; enable Crossbar |
33 | orl P1MDOUT, #0ffh ; make LED pin output push-pull |
34 | orl P1MDIN, #00h ; make LED pin input mode digital |
35 | call init |
36 | |
37 | |
38 | |
39 | mainloop: |
40 | |
41 | call char_in |
42 | mov P1,A |
43 | |
44 | jmp mainloop |
45 | |
46 | char_in : |
47 | |
48 | jnb ri0,$ |
49 | mov a,sbuf0 |
50 | clr ri0 |
51 | ret |
52 | |
53 | init: |
54 | mov tmod,#00100000b |
55 | mov th1,#0fdh |
56 | mov scon0,#01010000b |
57 | setb tr1 |
58 | ret |
59 | ;----------------------------------------------------------------------------- |
60 | ; End of file. |
61 | |
62 | END |