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 ]