nonkel_dw
nonkel dw
Hallo
Ik ben al een geruime tijd bezig met dmx zender
Nu heb ik de ad converter aan de praat gekregen.
Maar het zenden met de uart wil niet lukken.
Ik heb de datacheet eens doorlezen en zo uitgevoert,
maar uit de uart komt geen bitje uit
dit is men code
mss heb ik iets over het hooft gezien?
LIST P=16F870
include<P16F870.INC>
__CONFIG _CP_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC & _LVP_OFF
WACHT EQU 20H
MAB EQU 21H
WAARDE EQU 22H
TIMER EQU 23H
;ALLE KANALEN
MABD EQU 24H
KAN0 EQU 25H
KAN1 EQU 26H
KAN2 EQU 27H
KAN3 EQU 28H
KAN4 EQU 29H
KAN5 EQU 30H
KAN6 EQU 31H
KAN7 EQU 32H
KAN8 EQU 33H
KAN9 EQU 34H
ORG 0X00
INIT
; MOVLW D'128'
; MOVWF WAARDE
BSF STATUS,RP0 ;GA NAAR BANK1
MOVLW B'00000000'
MOVWF PORTC
MOVWF PORTB
MOVLW B'111111'
MOVWF PORTA
;UART
BSF TXSTA,SPEN ; ZET DE POORT AAN
BSF TXSTA,TX9 ; 9 BIT AAN
BSF TXSTA,TXEN ; ONTVANGEN AAN
BCF TXSTA,SYNC ; ASYNCGROON ZENDEN
BSF TXSTA,BRGH ; HOGE SNELHEID
BSF TXSTA,TRMT ; CHIFT REGISTER
BSF TXSTA,TX9D ; ZET DE 9 DE BIT AAN
BSF TXSTA,TXIF
MOVLW D'49' ; BAUDRATE IN STELLEN 49
MOVWF SPBRG
;AD CONVERTER
MOVLW B'00000000' ; ZET DE POORTEN JUIST VOOR TE ONTVANGEN
MOVWF ADCON1 ; ZET HET WEG
BCF STATUS,RP0 ; GA NAAR BANK0
MOVLW B'10000101'
MOVWF ADCON0
;ZET DE MAB JUIST
MOVLW B'00000001' ; DMX ONTVANGEN DE MAB BREAK
MOVWF MABD
NOP
CLRF KAN0 ;CLEAR DE FILE
GOTO MAIN ; GA NU MAAR ZENDEN
LUS BSF PORTC,0
BSF ADCON0,GO ; ZET HET ONTVANGEN VAN AD CONVERTER AAN
MOVFW ADRESH ; ZET ONTVANGEN DATA IN POORTC
MOVWF KAN1 ; ZET HET OOK IN KANAAL1
LOOP BTFSC ADCON0,2 ; KIJKEN OF DE BIT LAAG IS
GOTO LOOP ; GOTO LOOP
LOOP2
BTFSS PIR1,TXIF ; KIJK OF DE BIT 1 IS
GOTO LOOP2
BCF PORTC,0
RETURN ; ALL VOORZAARDEN VOLDAAN OK TERUG
MAIN
; LUS
BSF STATUS,RP0 ; GA NAAR BANK 1
BCF TXSTA,TXEN ; DYSABLE UART
BSF STATUS,RP0 ; GA TERUG NAAR BANK0
BCF PORTC,6 ; ZENDEN BREAK
; WE STARTEN
; HIER GAAN WE,DE BREAK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP ; EINDE BREAK
BSF STATUS,RP0 ; GA NAAR BANK 1
BSF TXSTA,TXEN ; ENABLE DE UART
BCF STATUS,RP0 ; GA NAAR BANK 0
MOVFW KAN0 ; STUUR KANAAL 1
MOVWF TXREG
CALL LUS ; NU MOETEN WE WACHTEN TOT HET VERZONDEN IS
; NU KUNNEN WE EVEN DE AD CONVERTER EENS LATEN KIJKEN OF HET VERANDERT IS
MOVFW KAN1 ; OKE KANAAL 1 ZENDEN
MOVWF TXREG ; STUUR KANAAL2
CALL LUS ; WACHTEN TOT VERZONDEN IS
MOVFW KAN2
MOVWF TXREG
CALL LUS
MOVFW KAN3
MOVWF TXREG
CALL LUS
MOVFW KAN3
MOVWF TXREG
CALL LUS
MOVFW KAN4
MOVWF TXREG
CALL LUS
GOTO MAIN
END
alvast bedankt
nonkel_dw
nonkel dw
Oke de uart doet al iets
maar hij zent de break nog niet moet het spen bitje dan ook clearen nu clear ik alleen TXEN
hij moet eert een tijd laag blijven maar nu vlijven de data frammes maar komen
en zie ik nergens een break
[Bericht gewijzigd door nonkel_dw op (80%)]
Op 4 januari 2008 20:17:04 schreef nonkel_dw:
ziet iemand nog de fout hoe het komt dat ik geen break krijg ?
Ja, je kijkt niet in het datasheet. Want het disabelen voor het zenden van de break klopt niet.
nonkel_dw
nonkel dw
Eerst weet je niet waar het SPEN bitje zit, en nu weet je niet wat het doet. En het staat er allemaal zo mooi in 