Re: Probléma 16F871 UART inicializálásakor?
Jozsef CSEH
jozsef.cseh at herterkom.hu
Wed Aug 21 19:48:54 CEST 2002
Hello!
1. Kerdes: a szintilleszto HW-t megcsinaltad?
(soros port:+/-12V , PIC:TTL logikai szintek)
Ellenorzes:vedd ki a PIC-t, helyette rakj be rovidzarat az RX(26.lab)
es TX(25.lab)laba koze(helyett), majd a hyperterminalban (windows-hoz
adott soros terminalprogram) latnod kell visszajonni a karaktereket
amiket begepelsz.
2. Lapozod a PIC-t amikor kell?(de undorodom ettol a lapozastol!)
pl. a:
MOVWF TXREG
KEZDET
INCF TRISB,F
tuti nem egy lapon van(TXREG ill TRISB).
Nem inkabb PORTB a TRISB helyett?
3. Reszletek egy nalam mukodiko progibol (poll-os kezelessel),
kicsit belenyultam, ezert lehet, hogy belekerult hiba.
Ezt is a hyperterminallal lehet ellenorizni.
(nalam 4MHz-es orajellel, ha nalad 20MHz, akkor az SPBRG=129 jo):
list p=16f871 ; list directive to defineprocessor
#include <p16f871.inc> ; processorspecific variable definitions
page0 equ H'000'
page1 equ H'080'
page2 equ H'100'
page3 equ H'180'
reset ORG 0x0000
goto USARTinic
ORG 0x0004
RETFIE
USARTinic
banksel page1 ; Go to Bank1
MOVLW D'25' ; Set Baud rate
MOVWF SPBRG ; 4000000/16/(25+1)=9615 Baud
MOVLW 0x24 ; 8-bit transmit, transmitter enabled,
MOVWF TXSTA ; asynchronous mode, high speed mode
banksel page0 ; Go to Bank 0
MOVLW 0x90 ; 8-bit receive, receiver enabled,
MOVWF RCSTA ; serial port enabled
chkseria BTFSS PIR1,RCIF ;erkezett-e uj karakter?
GOTO chksere ; nem. Vetel vege, mehetunk tovabb.
BTFSS PIR1,TXIF ; igen,ures-e az adas reg.?
GOTO chksere ; nem
MOVF RCREG,W ; igen, vett kar.-t az adas reg-be
MOVWF TXREG
chksere RETURN
Main CALL chkseria
GOTO Main
end ; directive 'end of program'
4.Szerintem ezek feleslegesek:
BCF INTCON,GIE ;hogy ne szakitson felbe
amig nincs retfie addig ugysem jon ujabb interrupt
BSF INTCON,GIE ;mert csak
ezt megteszi a RETFIE, sot talan hiba is mert ujabb IT johet a retfie
elott.
5.Hiba!!!:
MOVLW 0XBF ;ezt nem tudom kell-e
MOVWF TRISC ;csak a biztonsag kedveert
manual 95.oldal:"TRISC<7:6> have to be set "!!!!
ezert nem ad! Igy nem a soros port vezerli az RC6 labat, hanem a
PORTB 6. bitje.
6. Ki kezeli a veteli IT-t? Mivel az erkezett byte-ot nem olvasod ki,
ezert az IT bit nem torlodik. Vagy venni nem akarsz?(nem is
engedelyezted, de akkor minek konfiguralni?)
7. Az adasoldal mindenfele shiftelt zagyvasagot kuldene egyfolytaban
(ha nem lenne az 5. pontbeli hiba), ezt igy akarod?
Hello Simon,
Tuesday, August 20, 2002, 5:30:46 PM, you wrote:
SD> Sziasztok!
SD> Probaltam irni egy 1xű kis progit PIC16F871- re, amivel
SD> ossze tudnam kapcsolni a PIC-et egy PC-vel, de sajna
SD> valamiert nem műkodik.
More information about the Elektro
mailing list