Здравейте.
Вече втори ден ме тормози конфигурирането на UART-a на pic12f1822.
Не предава и това е
До момента съм:
- направил всички изводи цифрови
- направил нужните изводи - входове и изходи
- определил през APFCON кой извод на UARTA на кой пин ще е мапнат (в случая RX = RA5 = pin 2; TX = RA4 = pin 3)
- определил скоростта на предаване (9600 bsp, при чип на 32Mhz)
- активирал предаването по уарт
- конфигурирал UART в асинхронен режим
- активирал уарт-а
И въпреки всичко явно съм отървал нещо.
И да допълня - като казвам че не предава имам в предвид че никакъв сигнал не излиза от извода.
 |  |  |
 | Код: LIST P=12F1822,ST=OFF,R=DEC,F=INHX32 INCLUDE P12F1822.INC
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF __CONFIG _CONFIG2, _WRT_OFF & _PLLEN_ON & _STVREN_OFF & _BORV_19 & _LVP_OFF
org 0x00 goto hw_init
; uart_send ;;;;;;;;;;;;;;;;;;;;;;;;; uart_send: ; btfss PIR1, TXIF ; goto $-1 ; ; banksel TXREG ; movwf TXREG ; ; banksel 0 ; ; return ; ;;;;;;;;;;;;;;;;;;;;;;;;;
hw_init: banksel OSCCON ; movlw 0xF0 ;Set OSCCON<4:7> bits movf OSCCON ;PLL x4, 8Mhz int. osc. = 32Mhz ; banksel PORTA ; clrf PORTA ;Init PORTA banksel LATA ;Data Latch clrf LATA ; banksel ANSELA ; clrf ANSELA ;digital I/O banksel TRISA ; movlw B'00101000' ;Set RA5 and RA3 as inputs movwf TRISA ;and set RA<2:0> and RA4 as ;outputs ; banksel APFCON ; bsf APFCON, TXCKSEL ;Set RA4 as UART TX bsf APFCON, RXDTSEL ;Set RA5 as UART RX ; banksel SPBRG ; movlw 207 ; movwf SPBRG ; UART speed 9600@32Mhz
banksel TXSTA ; movlw B'00100100' ; movwf TXSTA ; High baud rate - on, TX - on banksel RCSTA ;RCSTA: RECEIVE STATUS AND CONTROL REGISTER movlw B'10010000' ; movwf RCSTA ;Serial port - on, Asynchronous mode - on main: nop
movlw 'X' call uart_send
goto main
END
|  |
 |  |  |