www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

PIC UART TEST - port iz 628 na 627 - pomoč?

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
TRIROG
Član
Član



Pridružen-a: Čet 30 Avg 2007 12:23
Prispevkov: 84
Aktiv.: 0.39
Kraj: Ljubljana

PrispevekObjavljeno: Čet Dec 09, 2010 9:34 am    Naslov sporočila:  PIC UART TEST - port iz 628 na 627 - pomoč? Odgovori s citatom

Dobro jutro!

Včeraj sem se malo igral s spodnjim programčkom, ki naj bi ob zagonu izpisal 16627 Alive potem pa vračal vse vnešene znake ( pic je preko MAX 232 priklopljen na PC)

Težava je v tem, da je program v originalu pisan za 628ko.

Ob priklopu se mi sicer v terminalu izpišejo neki znakci, vendar niti približno ne gre za napis ki bi naj bil poslan?

Lahko kdo prosim preveri ali je koda sploh ustrezna?

Hvala!
Koda:

;*******************************************************************
; Function:  Sends alive message, then echoes characters at 9600 bps
; Processor: PIC16F628 at 4 MHz using internal RC oscillator
; Hardware:  Testboard K4
; Filename:  628uart.asm
; Author:    Lars Petersen, oz1bxm@pobox.com
; Website:   www.qsl.net/oz1bxm/PIC/pic.htm
; Credit:    Tony Nixon's test program at
;            www.piclist.com/techref/microchip/16f877/setup.htm
;*******************************************************************

        LIST P=16F627, R=DEC    ; Use the PIC16F628 and decimal system

        #include "P16F627.INC"  ; Include header file

        __config  _INTRC_OSC_NOCLKOUT & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON

        CBLOCK 0x20             ; Declare variable addresses starting at 0x20
          dataL
        ENDC

        ORG    0x000            ; Program starts at 0x000
;
; --------------------------------
; SET ANALOG/DIGITAL INPUTS PORT A
; --------------------------------
;
        movlw 7
        movwf CMCON             ; CMCON=7 set comperators off
;
; ----------------
; INITIALIZE PORTS
; ----------------
;
        movlw b'00000000'       ; set up portA
        movwf PORTA

        movlw b'00000100'       ; RB2(TX)=1 others are 0
        movwf PORTB

        bsf STATUS,RP0          ; RAM PAGE 1

        movlw 0xFF
        movwf TRISA             ; portA all pins input

        movlw b'11110010'       ; RB7-RB4 and RB1(RX)=input, others output
        movwf TRISB

; ------------------------------------
; SET BAUD RATE TO COMMUNICATE WITH PC
; ------------------------------------
; Boot Baud Rate = 9600, No Parity, 1 Stop Bit
;
        movlw 0x19              ; 0x19=9600 bps (0x0C=19200 bps)
        movwf SPBRG
        movlw b'00100100'       ; brgh = high (2)
        movwf TXSTA             ; enable Async Transmission, set brgh

        bcf STATUS,RP0          ; RAM PAGE 0

        movlw b'10010000'       ; enable Async Reception
        movwf RCSTA
;
; ------------------------------------
; PROVIDE A SETTLING TIME FOR START UP
; ------------------------------------
;
        clrf dataL
settle  decfsz dataL,F
        goto settle

        movf RCREG,W
        movf RCREG,W
        movf RCREG,W            ; flush receive buffer
;
; ---------
; MAIN LOOP
; ---------
;
        call message            ; send "16F628 alive"
loop    call receive            ; wait for a char
        call send               ; send the char
        goto loop
;
; -------------------------------------------
; RECEIVE CHARACTER FROM RS232 AND STORE IN W
; -------------------------------------------
; This routine does not return until a character is received.
;
receive btfss PIR1,RCIF         ; (5) check for received data
        goto receive

        movf RCREG,W            ; save received data in W
        return
;
; -------------------------------------------------------------
; SEND CHARACTER IN W VIA RS232 AND WAIT UNTIL FINISHED SENDING
; -------------------------------------------------------------
;
send    movwf TXREG             ; send data in W

TransWt bsf STATUS,RP0          ; RAM PAGE 1
WtHere  btfss TXSTA,TRMT        ; (1) transmission is complete if hi
        goto WtHere

        bcf STATUS,RP0          ; RAM PAGE 0
        return
;
; -------
; MESSAGE
; -------
;
message movlw  '1'
        call send
        movlw  '6'
        call send
        movlw  'F'
        call send
        movlw  '6'
        call send
        movlw  '2'
        call send
        movlw  '7'
        call send
        movlw  ' '
        call send
        movlw  'a'
        call send
        movlw  'l'
        call send
        movlw  'i'
        call send
        movlw  'v'
        call send
        movlw  'e'
        call send
        movlw  0x0D ; CR
        call send
        movlw  0x0A ; LF
        call send
        return

        END
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bferlic
Član
Član



Pridružen-a: Tor 09 Dec 2003 17:28
Prispevkov: 99
Aktiv.: 0.42
Kraj: Brezula, Rače

PrispevekObjavljeno: Čet Dec 09, 2010 10:42 am    Naslov sporočila:   Odgovori s citatom

Nisem gledal vsega, ampak za delovanje USART-a morata biti postavljena TRISB<2:1> oba na 1, kljub temu, da je en pin izhod.

LP Boštjan
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
TRIROG
Član
Član



Pridružen-a: Čet 30 Avg 2007 12:23
Prispevkov: 84
Aktiv.: 0.39
Kraj: Ljubljana

PrispevekObjavljeno: Pet Dec 10, 2010 10:19 am    Naslov sporočila:   Odgovori s citatom

Sem rešil... zadeva dela ... hvala!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
TRIROG
Član
Član



Pridružen-a: Čet 30 Avg 2007 12:23
Prispevkov: 84
Aktiv.: 0.39
Kraj: Ljubljana

PrispevekObjavljeno: Pet Dec 10, 2010 10:59 am    Naslov sporočila:   Odgovori s citatom

bferlic je napisal/a:
Nisem gledal vsega, ampak za delovanje USART-a morata biti postavljena TRISB<2:1> oba na 1, kljub temu, da je en pin izhod.

LP Boštjan


Lahko razložiš kaj pomeni TRISB<2:1>?

Hvala!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bferlic
Član
Član



Pridružen-a: Tor 09 Dec 2003 17:28
Prispevkov: 99
Aktiv.: 0.42
Kraj: Brezula, Rače

PrispevekObjavljeno: Pet Dec 10, 2010 3:33 pm    Naslov sporočila:   Odgovori s citatom

Zdravo

Mišljeni so TRISB biti "od 2 do 1", v tem primeru sta samo 2 in 1, biti pa se označujejo 0-7. Very Happy

V zgornjem primeru si v TRISB shranil b'11110010', torej je TRISB<2> 0, kar pa glede na datasheet pomeni, da je USART izklopljen. Zdaj če si pa kaj drugega popravil, to pa ne, in ti vseeno dela, sem pa mogoče še kaj spregledal Cool

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
TRIROG
Član
Član



Pridružen-a: Čet 30 Avg 2007 12:23
Prispevkov: 84
Aktiv.: 0.39
Kraj: Ljubljana

PrispevekObjavljeno: Sob Dec 11, 2010 12:01 am    Naslov sporočila:   Odgovori s citatom

Hoj, hvala oznaka mi ni bila poznana...rookie pač...

nekje sem prebral, da je v takšnem modeu ne glede na to ali ga določiš kot vhhodnega ali ne vhoden...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 495 dni


Powered by phpBB © 2001, 2005 phpBB Group