Gegroet,
Ik probeer in de onderstaande code, 112 bytes van een seriele GPS in te lezen, daarna steek ik de seriele kabel in mijn computer en wil de bytes naar mijn computer sturen.
Maar daar loopt het mis, de code doorloopt de transmit sequentie gewoon ook al hangt er zelfs geen seriele kabel aan de microcontroller.
Dit kan ik merken omdat poort P2 bestaat uit 8 actief laag ledjes. Wat doe ik fout in dit UART protocol?
ALvast bedankt!
Ik probeer in de onderstaande code, 112 bytes van een seriele GPS in te lezen, daarna steek ik de seriele kabel in mijn computer en wil de bytes naar mijn computer sturen.
Maar daar loopt het mis, de code doorloopt de transmit sequentie gewoon ook al hangt er zelfs geen seriele kabel aan de microcontroller.
Dit kan ik merken omdat poort P2 bestaat uit 8 actief laag ledjes. Wat doe ik fout in dit UART protocol?
ALvast bedankt!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| AGAIN: CLR RI0 ;klaarmaken om byte te ontvangen
HERE: JNB RI0, HERE ;wachten tot byte aankomy
MOV A, S0BUF ;byte wegschrijven
MOV @R0, A ;wegschrijven naar internal ram
INC R0 ; adress incrementeren
;;ledjes;;
MOV A,P2
RR A
MOV P2,A
CJNE R0,#70h,again ;kijken of er reeds 112 bytes zijn ingelezen , anders naar verzend sequentie
TRAN: MOV R0,#00h ; Adres resetten
MOV P2,#00000000B ;Visueel laten zien dat ontvangsequentie gedaan is
LCALL DELAY5S
LCALL DELAY5S
LCALL DELAY5S
MOV P2,#00000011B
TAGAIN:
CLR TI0 ; Waarschuwen dat er nieuwe data aankomt
MOV A,@R0
MOV S0BUF, A ; Nieuwe data wegschrijven
INC R0
THERE:
JNB TI0, THERE ;wachten tot byte is aangekomen
;;ledjes;;
MOV A,P2
RR A
MOV P2,A
CJNE R0,#70h,tagain ; kijken of alle bytes verzonden zijn
MOV P2,#00000000b
DELAY: LCALL DELAY5S
SJMP delay ;while(1) |
[ Voor 22% gewijzigd door roel0 op 01-05-2013 11:50 ]