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

Het SPEN bitje zit niet in TXSTA, maar in RXSTA.
De poort wordt dus niet enabled.

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%)]

ziet iemand nog de fout hoe het komt dat ik geen break krijg ?

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.

deze is toch het TXEN bitje
is dit 0 dan disabled ik hem
dus dan klopt men code toch

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 ;(